最近在CentOS 7中源碼安裝MySQL 5.7.16,發現MySQL5.7.6+以后的安裝方式真的與以前版本的MySQL安裝方式大大的不同呀。不自己安裝一把,下面這篇文章是通過自己的安裝過程總結的一篇安裝教程,有需要的朋友們可以參考借鑒,下面來一起看看吧
配置說明
Linux版本:Centos7
MySQL版本:MySQL5.7.16
該文檔適用于MySQL版本>=5.7.6
一、首先檢查你所用的Linux下有沒有安裝過mysql,有沒有卸載干凈,卸載CentOS7默認攜帶的mariadb包
1 #檢查mariadb安裝包
2 [root@wing ~]#rpm -qa | grep -i mysql
3 [root@wing ~]#rpm -qa | grep -i mariadb
4 mariadb-libs-5.5.50-1.el7_2.x86_645 #卸載查找到的mariadb安裝包
6 [root@wing ~]#rpm -e mariadb-libs-5.5.50-1.el7_2.x86_647 #注:如上命令刪除不成功,有別的軟件依賴無法刪除時,如下操作:
8 [root@wing ~]#yum remove mariadb-libs-5.5.50-1.el7_2.x86_64
View Code
二、獲得MySQL所有版本(5.0.15-latest)地址,并下載源文件MySQL5.7 需要安裝 boost庫文件
2. 創建并進入源碼存放目錄:mkdir ?/home/source
3. 下載源碼并清除 centos 原有my.cnf配置文件:
1 wget https://downloads.mysql.com/archives/get/file/mysql-5.7.16.tar.gz2 mv /etc/my.cnf /etc/mysql.cof.back
三、安裝編譯軟件和依賴
#首先更新系統軟件
# yum update
四、創建MySQL安裝目錄
五、創建mysql用戶和用戶組
六、創建MySQL相關目錄
| 目錄 | 含義 | 配置參數 |
| :——— | ————————————– | —————————————- |
| bin_log | 二進制日志目錄 | log_bin_basename
log_bin_index |
| mydata | 數據文件目錄 | datadir |
| innodb_log | InnoDB重做日志目錄 | innodb_log_group_home_dir |
| innodb_ts | InnoDB共享表空間目錄 | innodb_data_home_dir |
| log | 日志文件目錄(error log+general log+slow log) | log_error
general_log_file
slow_query_log_file |
| relay_log | InnoDB中繼日志目錄 | relay_log_basename
relay_log_index |
| tmpdir | 臨時文件目錄 | tmpdir |
| undo_log | InnoDB回滾日志目錄 | innodb_undo_directory |
七、創建的目錄的所屬用戶與所屬組為mysql:mysql
注1 chown -R mysql:mysql /home/mysql/data2 chown -R mysql:mysql /usr/local/web/mysql
八,解壓MySQL源碼包
九,編譯安裝MySQL5.7.6+
注:如果編譯出現錯誤,請先刪除CMakeCache.txt后,再重新編譯:
rm -rf CMakeCache.txt
如果安裝報錯:tar -zxvf boost_1_59_0.tar.gz 無法解壓 請下載可用文件:
1 wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
同時cmake 選項:
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost
改成:
-DWITH_BOOST=/usr/local/boost/boost_1_59_0.tar.gz
重新Cmake。
如果出現下面的提示就表示成功生成了編譯環境:
-- Configuring done
-- Generating done
1 #cmake參數解釋如下:
2
3 DCMAKE_INSTALL_PREFIX=/usr/local/mysql:安裝路徑4
5 DMYSQL_DATADIR=/data/mysql:數據文件存放位置6
7 DSYSCONFDIR=/etc:my.cnf路徑8
9 DWITH_MYISAM_STORAGE_ENGINE=1:支持MyIASM引擎10
11 DWITH_INNOBASE_STORAGE_ENGINE=1:支持InnoDB引擎12
13 DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock:連接數據庫socket路徑14
15 DMYSQL_TCP_PORT=3306:端口16
17 DENABLED_LOCAL_INFILE=1:允許從本地導入數據18
19 DWITH_PARTITION_STORAGE_ENGINE=1:安裝支持數據庫分區20
21 DEXTRA_CHARSETS=all:安裝所有的字符集22
23 DDEFAULT_CHARSET=utf8:默認字符24
25 DWITH_EMBEDDED_SERVER=1:嵌入式服務器
十,設置開機自啟動:
十一,初始化MySQL:
初始化注意事項:
1.如果出現如下信息:unknown variable'defaults-file=/data/mysql/my.cnf',請保證--defaults-file配置選項在最前面。
2.初始化最后一行是root用戶密碼(root@localhost: ,5j1Qj_LLAek)如圖:
十二,啟動MySQL服務:
1. 添加MySQL環境變量
2. 啟動MySQL
mysql啟動報錯:Starting MySQL... ERROR! The server quit without updating PID file參考:http://blog.51cto.com/732233048/1636409,啟動不成功,修改my.cnf后需要重新初始化
十三,登陸MySQL并修改密碼
十四,關閉MySQL:
十五,啟動MySQL遠程訪問:
1. 防火墻開啟3306端口:firewall-cmd --add-port=8001/tcp?--permanent(永久生效)
十六,MySQL5.7 和以前版本不同點:
1.初始化工具不同
MySQL5.6.xx使用的是mysql_install_db,MySQL5.7.6+官方推薦使用mysqld –initialize。
2.初始化數據庫不同
MySQL5.6.xx初始化之后存在mysql,information_schema,performance_schema,test四個數據庫,MySQL5.7.6+初始化之后存在mysql,information_schema,performance_schema,sys四個數據庫。
3.初始化用戶不同
MySQL5.6.xx初始化之后存在root@localhost,root@'::1',root@'hostname',''@'localhost',''@'hostname'五個用戶,MySQL5.7.6+初始化之后存在mysql.sys,root@localhost用戶
4.初始化root密碼
MySQL5.6.xx初始化之后root用戶密碼為空,MySQL5.7.6+初始化之后會為root@localhost用戶生成隨機密碼。
十七,MySQL安裝常用參考文檔: