1. 程式人生 > >源碼編譯安裝Mysql5.7版本

源碼編譯安裝Mysql5.7版本

源碼編譯 Mysql5.7版本

1、源碼編譯安裝mysql(5.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版本