之前在網上看到的mysql5.7的源碼安裝, 中間出現了不少的錯誤,在這裏重新糾正一下,親測可用 其實最重要的是在make的時候。。
1、下載源碼
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
在以下地地址下載源碼
在Select Operating System: 選項選擇 source code
在Select OS Version: 選項選擇generic linux
或者直接在linux 系統
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.23.tar.gz
下載下來的文件名稱是 mysql-boost-5.7.23.tar.gz
ps 該文件已經含有了boost文件
2、修改主機名,關閉防火牆及selinux
修改主機名:我用的是contos 6 所以直接修改vi /etc/sysconfig/network ,修改如下
-
NETWORKING=yes
-
HOSTNAME=testsql
關閉防火牆:
service iptables stop
設置開機不啓動防火牆
chkconfig iptables off;
關閉selinux:
修改/etc/selinux/config 文件 把SELINUX 的值改爲disabled
-
[root@testsql ~]# cat /etc/selinux/config
-
# This file controls the state of SELinux on the system.
-
# SELINUX= can take one of these three values:
-
# enforcing - SELinux security policy is enforced.
-
# permissive - SELinux prints warnings instead of enforcing.
-
# disabled - No SELinux policy is loaded.
-
SELINUX=disabled
-
# SELINUXTYPE= can take one of these two values:
-
# targeted - Targeted processes are protected,
-
# mls - Multi Level Security protection.
-
SELINUXTYPE=targeted
3、做完以上步驟之後,重啓操作系統 reboot;
4、安裝cmake
這裏用一種比較簡單的方法來安裝cmake
yum -y install wget gcc-c++ ncurses-devel cmake make perl
5、創建用戶、目錄、添加環境變量及修改hosts
創建用戶:
groupadd mysql
useradd -g mysql mysql -s /sbin/nologin (不允許操作系統以mysql用戶登陸)
創建目錄:
mkdir -p /application/mysql5.7.23
ln -s /application/mysql /application/mysql5.7.23
mkdir -p /data/mysql
mkdir -p /data/mysql/data
mkdir -p /data/mysql/logs
mkdir -p /data/mysql/temp
chow -R mysql:mysql /data
編輯PATH搜索路徑:
修改/etc/profile 往裏面加入
-
PATH=/application/mysql/bin:/application/mysql/lib:$PATH
-
export PATH
source /etc/profile
修改 /etc/hosts:
往裏面加入 主機IP 域名
-
[root@testsql ~]# cat /etc/hosts
-
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
-
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
-
192.168.115.132 testmysql
-
[root@testsql ~]#
一般如果沒有特別要求最好就是域名與主機名一樣,之前安裝用ambari安裝hadoop 的時候就是因爲域名與主機名不一樣報錯,所以 以後一般安裝軟件的時候,最好就設置 這兩個值一樣
6、上傳安裝包,並且解壓安裝包
上傳下載的源碼到/temp目錄,並且 解壓文件
tar -zxvf mysql-boost-5.7.23.tar.gz
進入mysql5.7.23裏面
7、配置並且安裝
-
cmake \
-
-DCMAKE_INSTALL_PREFIX=/application/mysql \
-
-DMYSQL_UNIX_ADDR=/application/mysql.sock \
-
-DDEFAULT_CHARSET=utf8 \
-
-DDEFAULT_COLLATION=utf8_general_ci \
-
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-
-DWITH_READLINE=1 \
-
-DENABLED_LOCAL_INFILE=1 \
-
-DMYSQL_DATADIR=/home/mysql/data \
-
-DMYSQL_USER=mysql \
-
-DMYSQL_TCP_PORT=3306 \
-
-DENABLE_DOWNLOADS=1 \
-
-DWITH_BOOST=boost/boost_1_59_0/
cmake 執行完成之後
執行 make 命令
在這裏是重點。有的系統的內在不在1G之上, 但是mysql5.7的要求是在1G以上的內在才行。所有要臨時提升一下內存空間。。
如果出現 c++: internal compiler error: Killed (program cc1plus)
運行如下命令。臨時提升一下內存空間。再次Make
$dd if=/dev/zero of=/data/swap_add bs=1M count=2048
$mkswap /data/swap_add
$swapon /data/swap_add $swapon -s
執行make 之後
echo $?
確認一下有沒有 錯
ps linux 每執行一個命令都會返回一個命令值 ,如果該值爲0則表示命令執行成功。
make install
執行以上命令,如果沒有 錯則表示安裝成功 ,如果有錯需要重新編譯的話可以執行
make clean
rm -rf CMakeCache.txt
8、初始化數據庫
-
cd /application/myql
-
./bin/mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
編譯完成之後顯示有root用戶的默認賬號密碼,該密碼是用來初次登陸數據庫
9、修改配置文件
cp /application/mysql/support-files/my-default.cnf /etc/my.cnf
vi /etc/my.cnf
-
basedir =/application/mysql
-
datadir =/data/mysql/data
-
port = 3306
-
socket = /data/mysql/temp/mysql.sock
-
user=mysql
-
# Disabling symbolic-links is recommended to prevent assorted security risks
-
symbolic-links=0
-
[mysqld_safe]
-
log-error=/var/log/mysqld.log
-
pid-file=/var/run/mysqld/mysqld.pid
-
[client]
-
socket = /data/mysql/temp/mysql.sock
10、配置 使用dervice啓動關閉數據庫
-
cp /application/mysql/support-files/mysql.server /etc/init.d/mysql
-
chkconfig mysql on
啓動關閉數據庫
11.在我們啓動數據庫的時候可能會報錯
大概意思是sock文件不存在 , 這個時候 service mysql restart 重啓能解決問題。但是在重啓的時候又出現一個問題,大概意思是pid文件不存在 。如果是按照上面的配置來的話。 就仔細對照一下配置文件是否和上面的一致。
12.在成功進入數據庫的時候可能也會報錯, 大概意思是說在有動作之前必須重置密碼
輸入set password = password('123123') query Ok 說明成功。 到這裏基本沒有什麼問題
就是在make的時候可能會消耗很長的時候,大家耐心等待。。 如果有什麼問題可以聯繫QQ 979928978
-
service mysql start
-
service mysql stop