1. 程式人生 > >centos7下mysql5.7編譯安裝

centos7下mysql5.7編譯安裝

添加 fault 字段 配置 設置密碼 groupadd ref cte nload

mysql5.5以後,mysql的編譯安裝開始采用cmake的方式,使編譯能夠獨立與源碼之外工作,同時,編譯版本的mysql兼容性非常好,而且易於卸載和移植到其他服務器上使用,本文講述mysql5.7的編譯安裝過程;
?
?
準備工作

mysql安裝包:mysql-5.7.19.tar.gz
編譯依賴包: boost_1_59_0.tar.gz
安裝環境:centos7服務器,磁盤大小20G左右,內存2G或以上

?
?
建立用戶與組

groupadd -g 27 mysql
useradd -u 27 -g mysql -M -s /sbin/nologin mysql

?
?
創建目錄

mkdir /usr/local/mysql?

mkdir /data/mysql
chown mysql:mysql -R /usr/local/mysql
chown mysql:mysql -R /data/mysql

?
?
解壓軟件包

mv mysql-5.7.19.tar.gz /usr/local/src
mv boost_1_59_0.tar.gz /usr/local/src
cd /usr/local/src
tar xf mysql-5.7.19.tar.gz
tar xf boost_1_59_0.tar.gz /usr/local/src
mkdir ./boost
mv boost_1_59_0 ./boost

?
?
配置編譯環境

yum -y install gcc-c++ ncurses-devel cmake

?
?
開始編譯
?

cd /usr/local/src/mysql-5.7.19
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock  -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1    -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src/boost

?
?
cmake參數解析
?

>-DCMAKE_INSTALL_PREFIX=/usr/local/mysql57#指定安裝路徑
>-DMYSQL_DATADIR=/data/mysql#指定數據庫存放路徑
>-DDEFAULT_CHARSET=utf8 
>-DDEFAULT_COLLATION=utf8_general_ci ;#設置字符校驗集
>-DMYSQL_TCP_PORT=3306 
>-DMYSQL_UNIX_ADDR=/tmp/mysql.sock????#設置套接字生成路徑
>-DMYSQL_USER=mysql 
>-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 
>-DDOWNLOAD_BOOST=1 
>-DWITH_BOOST=/usr/local/src/boost#指定Boost擴展源碼路徑

?
?
開始安裝

make && make install???????#需要時間很久

?
安裝完成後,配置主配置文件,添加以下內容:

vim /etc/my.cnf

[client]
port=3306
socket=/data/mysql/mysql.sock

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

skip-name-resolve          
user=mysql
port=3306
basedir=/usr/local/mysql
datadir=/data/mysql
tmpdir=/tmp
socket=/data/mysql/mysql.sock

log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysqld.pid

?
進入數據庫目錄,進行數據庫初始化
?

cd /data/mysql
/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf  --initialize  --user=mysql

?
?
登錄數據庫,這個時候需要密碼登錄,但我們沒有設置密碼,可以通過數據庫初始化時生成的隨機密碼登錄(查看日誌文件獲取),但只能用一次,登錄後必須立刻設置密碼;
?

cd /data/mysql
cat cat mysql.log

?
找到" root@localhost: "字段後面的密文。

?
?
設置數據庫密碼
?

/usr/local/mysql/support-files/mysql.server   start
/usr/local/mysql/bin/mysql -uroot -p"隨機密碼"
mysql> alter user ‘root‘@‘localhost‘  IDENTIFIED BY  ‘123456‘;
mysql> grant all on *.* to ‘root‘@‘%‘ identified by ‘123456‘; #授權遠程用戶
mysql> flush privileges;#刷新密碼權限表
mysql> exit

?
??重新登錄測試,這時就可以使用剛才配置的密碼登錄了。
?
?

centos7下mysql5.7編譯安裝