## 安裝MySQL 8.0.12
參考文檔:
[CentOS 上 編譯MySQL-5.7.x 或者 MySQL-8.0 源碼 及 多實例安裝](https://my.oschina.net/u/3147971/blog/913920)
[CENTOS6.6下mysql5.7.11帶boost和不帶boost的源碼安裝](https://www.cnblogs.com/galengao/p/5755788.html)
[CentOS7.4 源碼安裝MySQL8.0](https://www.cnblogs.com/chenqs/p/8911670.html)
### 下載MySQL源碼包
MySQL官網下載頁:
~~~
https://www.mysql.com/downloads/
~~~
在列表最下面,找到MySQL社區版(MySQL Community Edition)的鏈接,點進去。
:-: 
按下圖選擇:
:-: 
這里有兩個源碼包可供選擇,一個是帶boost的,一個不帶boost。如果選擇不帶boost庫的,你還是要自己安裝boost庫。我們選擇帶boost庫的,一起安裝比較方便。
點擊“下載”,進入下載頁
:-: 
不需要登錄,直接點擊頁面下面的“No thanks, just start my download.”即可獲取下載鏈接
:-: 
獲取到的下載鏈接是:
~~~
https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.12.tar.gz
~~~
使用wget下載到packages目錄下,并解包
~~~
[root@localhost packages]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.12.tar.gz
[root@localhost packages]# tar zxf mysql-boost-8.0.12.tar.gz
[root@localhost packages]# cd mysql-8.0.12
[root@localhost mysql-8.0.12]#
~~~
創建用戶和組:
~~~
[root@localhost mysql-8.0.12]# groupadd mysql
[root@localhost mysql-8.0.12]# useradd -g mysql mysql
~~~
安裝依賴:
~~~
[root@localhost mysql-8.0.12]# yum install ncurses-devel -y
[root@localhost mysql-8.0.12]# yum install libaio -y
[root@localhost mysql-8.0.12]# yum install glibc-devel.i686 glibc-devel -y
[root@localhost mysql-8.0.12]# yum install gcc gcc-c++ -y
[root@localhost mysql-8.0.12]# yum install cmake -y
~~~
編譯MySQL
~~~
[root@localhost mysql-8.0.12]# cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost
[root@localhost mysql-8.0.12]# make
[root@localhost mysql-8.0.12]# make install
~~~
這里要編譯很久………………
………………
終于編譯完了,應該沒什么問題。
配置MySQL。這里配置數據目錄、日志目錄、unix_socket目錄、tmp目錄等
~~~
[root@localhost mysql-8.0.12]# mkdir -p /data/mysql
[root@localhost mysql-8.0.12]# cd /data/mysql
[root@localhost mysql]# mkdir data
[root@localhost mysql]# mkdir log
[root@localhost mysql]# mkdir socket
[root@localhost mysql]# mkdir tmp
[root@localhost mysql]# mkdir binlog
[root@localhost mysql]# mkdir run
[root@localhost mysql]# cd ..
[root@localhost data]# chown -R mysql.mysql ./mysql/
[root@localhost data]# chown -R mysql.mysql /usr/local/mysql/
~~~
導出mysql路徑:
~~~
[root@localhost data]# vim /etc/profile
~~~
添加如下內容:
~~~
MYSQL_HOME=/usr/local/mysql/bin
PATH=$PATH:$MYSQL_HOME
export PATH MYSQL_HOME
~~~
加載profile
~~~
[root@localhost data]# source /etc/profile
~~~
編輯MySQL配置文件,一定要小心各種文件的路徑,錯了啟動不了的。
~~~
[root@localhost data]# cp /etc/my.cnf /etc/my.cnf.bak
[root@localhost data]# vim /etc/my.cnf
~~~
寫入內容如下:
~~~
[client]
socket=/data/mysql/socket/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/data/mysql/socket/mysql.sock
tmpdir=/data/mysql/tmp
pid_file=/data/mysql/run/mysql.pid
log_error=/data/mysql/log/error.log
log_bin=/data/mysql/binlog/mysql-bin
slow_query_log_file=/data/mysql/log/slow-query.log
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mariadb.log
pid-file=/var/run/mariadb.pid
log-error=/data/mysql/log/error.log
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
~~~
編輯其它配置文件
~~~
[root@localhost data]# vim /etc/my.cnf.d/mysql-clients.cnf
~~~
寫入如下內容:
~~~
[mysql]
no_auto_rehash
[mysql_upgrade]
[mysqladmin]
[mysqlbinlog]
[mysqlcheck]
[mysqldump]
[mysqlimport]
[mysqlshow]
[mysqlslap]
~~~
這是簡化版的配置文件,如果需要完整版的,可以度娘一下。
初始化數據目錄和SSL
~~~
[root@localhost data]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
[root@localhost data]# /usr/local/mysql/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
~~~
這一步很重要,會在你指定的目錄初始化MySQL的數據文件和root賬號密碼。初始化數據目錄后,root賬號初始密碼會輸出在/data/mysql/log/error.log中,等一下要登錄MySQL并修改為自己的密碼。
配置MySQL服務
~~~
[root@localhost data]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
~~~
修改如下配置并保存:
~~~
basedir=/usr/local/mysql
datadir=/data/mysql/data
mysqld_pid_file_path=/data/mysql/run/mysql.pid
~~~
繼續
~~~
[root@localhost data]# chkconfig --add mysql
[root@localhost data]# chkconfig mysql on
[root@localhost data]# service mysql start
[root@localhost data]# service mysql stop
[root@localhost data]# systemctl start mysql.service
[root@localhost data]# systemctl status mysql.service
~~~
綠色的active (running)很好看吧。
修改root賬號的密碼
~~~
[root@localhost data]# mysql -uroot -p
輸入初始密碼,登錄mysql。初始密碼在/data/mysql/log/error.log中
登錄后修改密碼,否則什么也干不了的。
mysql> alter user 'root'@'localhost' identified by '123456';
mysql> quit;
~~~
MySQL安裝完畢。