源碼編譯安裝Mysql5.7版本
下載地址:
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.18.tar.gz
#(MySQL從5.7版本之後,boost是必須的,建議把系統自帶的boost庫卸載,源碼編譯安裝高版本
Boost庫是為C++語言標準庫提供擴展的一些C++程序庫的總稱)
(1)環境準備:
[root@Wg64 ~]# ls
mysql-boost-5.7.18.tar.gz nginx-1.10.3.tar.gz nginx.conf pcre-8.38.tar.gz php-7.0.18.tar.gz
#卸載系統自帶boots庫
[root@Wg64 ~]# yum -y remove boost-*
#卸載系統自帶的mysql
[root@Wg64 ~]# yum -y remove mysql
[root@Wg64 ~]# rpm -qa | grep mysql
mysql-libs-5.1.73-5.el6_6.x86_64
[root@Wg64 ~]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
[root@Wg64 ~]# rpm -qa | grep mysql
#安裝必要的資源包
建議使用網絡yum源,RHEL6.5光盤中自帶的軟件包版本不夠,mysql-boost-5.7.18.tar.gz的編譯對軟件包的版本要求比較高,其中cmake的版本要不低於2.8
#安裝依賴包
[root@Wg64 ~]# yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel
(2)添加用戶和組
[root@Wg64 ~]# groupadd mysql
[root@Wg64 ~]# useradd -M -s /sbin/nologin -r -g mysql mysql
(3)創建安裝目錄和數據存放目錄
[root@Wg64 ~]# mkdir -p /server/mysql
(4)上傳源碼包 並解壓源碼包
[root@HK64 LAMP]# ls
[root@Wg64 ~]# tar zxf mysql-boost-5.7.18.tar.gz -C /server/
(5)將boost移到/server/
[root@HK64 server]# cd mysql-5.7.18/ (包含boost庫的文件)
#將boots文件移動到/server/mysql/下
[root@Wg64 mysql-5.7.18]# mv boost/ /server/mysql
[root@Wg64 mysql-5.7.18]# cd /server/mysql
[root@Wg64 mysql]# ls
boost
(6)配置參數
[root@Wg64 mysql]# cd ../
[root@Wg64 server]# ls
mysql mysql-5.7.18
[root@Wg64 server]# cd mysql-5.7.18/
[root@Wg64 mysql-5.7.18]#cmake -DCMAKE_INSTALL_PREFIX=/server/mysql -DMYSQL_DATADIR=/server/mysql/data -DSYSCONFDIR=/etc -DMYSQL_UNIX_ADDR=/server/mysql/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=l -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/server/mysql/boost
這些編譯參數的幫助尋找方法:
http://www.mysql.com→→Documentation→→選擇對應的版本(5.7)Installation & Upgrades→→Installing MySQL from Source →→MySQL Source-Configuration Options
最終的URL https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html
DCMAKE_INSTALL_PREFIX:指定MySQL程序的安裝目錄,默認/usr/local/mysql
DEFAULT_CHARSET:指定服務器默認字符集,默認latin1
DEFAULT_COLLATION:指定服務器默認的校對規則,默認latin1_general_ci
ENABLED_LOCAL_INFILE:指定是否允許本地執行LOAD DATA INFILE,默認OFF
WITH_COMMENT:指定編譯備註信息
WITH_xxx_STORAGE_ENGINE:指定靜態編譯到mysql的存儲引擎,MyISAM,MERGE,MEMBER以及CSV四種引擎默認即被編譯至服務器,不需要特別指定。
WITHOUT_xxx_STORAGE_ENGINE:指定不編譯的存儲引擎
SYSCONFDIR:初始化參數文件目錄
MYSQL_DATADIR:數據文件目錄
MYSQL_TCP_PORT:服務端口號,默認3306
MYSQL_UNIX_ADDR:socket文件路徑,默認/tmp/mysql.sock
編譯
mysql-5.7.18.tar.gz編譯時會占用大量的系統資源,建議使用多個核心同時進行編譯,否則可能會編譯失敗
(7)編譯
#查看服務器cpu數
[root@Wg64 mysql-5.7.18]# grep processor /proc/cpuinfo | wc -l
2
[root@Wg64 mysql-5.7.18]# make -j 2
(8)安裝
[root@xuegod63 mysql-5.7.18]# make install
(9)修改目錄權限
[root@Wg64 mysql-5.7.18]# chown -R mysql:mysql /server/mysql/
(10)生成配置文件
#將原服務器配置文件移動備份或刪除
[root@Wg64 mysql-5.7.18]# mv /etc/my.cnf{,.bak}
#因5.7版本無此配置模板文件/server/mysql/support-files/my-default.cnf
#自行編寫my.cnf文件
[root@Wg64 mysql-5.7.18]#vim /etc/my.cnf
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#default
user = mysql
basedir = /server/mysql
datadir = /server/mysql/data
port = 3306
pid-file = /server/mysql/data/mysql.pid
socket = /server/mysql/mysql.sock
character-set-server=utf8
[client]
socket = /server/mysql/mysql.sock
(11)生成服務啟動腳本
grep chkconfig ./* -R -color
[root@Wg64 mysql]# cp /server/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@Wg64 mysql]# chmod +x /etc/init.d/mysqld
[root@Wg64 mysql]# chkconfig --add mysqld
[root@Wg64 mysql]# chkconfig mysqld on
[root@Wg64 mysql]# chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
(12)初始化數據庫
[root@Wg64 mysql]# /server/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/server/mysql --datadir=/server/mysql/data
(13)啟動服務
[root@Wg64 mysql]# service mysqld restart
ERROR! MySQL server PID file could not be found!
Starting MySQL.Logging to '/server/mysql/data/Wg64.err'.
SUCCESS!
[root@Wg64 mysql]# service mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL. SUCCESS!
(15)優化調用命令路徑
#添加path路徑: vim /etc/profile 添加下面2行 在文件的結尾
export MYSQL_HOME=/server/mysql
export PATH=$PATH:$MYSQL_HOME/bin
#使修改生效
source /etc/profile
或
[root@Wg64 mysql]# ln -s /server/mysql/bin/* /usr/local/bin/
(14)修改mysql密碼測試登入:
[root@Wg64 ~]# mysqladmin -u root password "123456"
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
測試登入成功:
源碼編譯LNMP請參考鏈接:http://blog.51cto.com/13719714/2110940
源碼編譯LAMP請參考鏈接:http://blog.51cto.com/13719714/2109227
Apache基礎調優請參考鏈接:http://blog.51cto.com/13719714/2109007
源碼編譯安裝Mysql5.7版本