官網:https://www.mysql.com/
下載地址:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.19.tar.gz
一、准備工作
1.下載mysql並解壓
[root@001 ~]# wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.19.tar.gz
[root@001 ~]# tar xf mysql-5.7.19.tar.gz -C /usr/local/src
[root@001 ~]# cd !$
[root@001 src]# cd mysql-5.7.19/
2.安裝相關編譯工具
[root@001 mysql-5.7.19]# yum -y install wget gcc-c++ ncurses-devel cmake
3.新建用戶
[root@001 ~]# useradd -s /sbin/nologin -M mysql
4.創建相關目錄:
[root@001 ~]# mkdir /usr/local/mysql
[root@001 ~]# mkdir /mysqldata
二、編譯安裝及配置
1.編譯安裝
[root@001 mysql-5.7.19]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysqldata/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -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/boost
#Mysql CMAKE編譯參數詳解見文章尾部
[root@001 mysql-5.7.19]# make -j 4 && make install
#如果出錯重新運行配置,需要刪除CMakeCache.txt文件,使用命令:make clean rm -f CMakeCache.txt
2.設置權限並初始化MySQL
[root@001 mysql-5.7.19]# chown -R mysql.mysql /usr/local/mysql/
[root@001 mysql-5.7.19]# cd /usr/local/mysql/bin/
[root@001 bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/mysqldata #生成一個隨機密碼(注意保存登錄時用)
2017-09-07T23:06:19.559512Z 1 [Note] A temporary password is generated for root@localhost: fwhYu/eIz6yX #記錄下來
3.修改配置文件
[root@001 bin]# vim /etc/my.cnf #修改如下內容
[mysqld]
basedir =/usr/local/mysql
datadir=/mysqldata/
port = 3306
socket=/tmp/mysql.sock
user=mysql
[client]
socket=/tmp/mysql.sock
4.配置mysql服務開機自動啟動
[root@001 bin]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@001 bin]# ldconfig
[root@001 bin]# chmod 755 /etc/init.d/mysqld #增加執行權限
[root@001 bin]# chkconfig --add mysqld
[root@001 bin]# chkconfig --level 345 mysqld on #設置MySQL在345等級自動啟動
5.設置環境變量
[root@001 bin]# echo "PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh
[root@001 bin]# source /etc/profile
6、啟動並登陸修改密碼
[root@001 bin]# service mysqld start
[root@001 bin]# mysql -uroot -pfwhYu/eIz6yX #之前記錄下來的密碼
mysql> set password = '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye #退出並重新登陸
[root@001 bin]# mysql -uroot -p123456
---以上編譯安裝MySQL5.7.19已完成,並能正常使用
附:
mysql最優配置文件:http://www.cnblogs.com/imweihao/p/7201014.html
mysql常用命令匯總:http://www.cnblogs.com/imweihao/p/7492477.html
Mysql CMAKE編譯參數詳解:
-DCMAKE_INSTALL_PREFIX= #指向mysql安裝目錄
-DINSTALL_SBINDIR=sbin #指向可執行文件目錄(prefix/sbin)
-DMYSQL_DATADIR=/var/lib/mysql #指向mysql數據文件目錄(/var/lib/mysql)
-DSYSCONFDIR=/etc/mysql #指向mysql配置文件目錄(/etc/mysql)
-DINSTALL_PLUGINDIR=lib/mysql/plugin #指向插件目錄(prefix/lib/mysql/plugin)
-DINSTALL_MANDIR=share/man #指向man文檔目錄(prefix/share/man)
-DINSTALL_SHAREDIR=share #指向aclocal/mysql.m4安裝目錄(prefix/share)
-DINSTALL_LIBDIR=lib/mysql #指向對象代碼庫目錄(prefix/lib/mysql)
-DINSTALL_INCLUDEDIR=include/mysql #指向頭文件目錄(prefix/include/mysql)
-DINSTALL_INFODIR=share/info #指向info文檔存放目錄(prefix/share/info)
prefix官方推薦設為/usr
Storage Engine相關
類型csv,myisam,myisammrg,heap,innobase,archive,blackhole
若想啟用某個引擎的支持:-DWITH_<ENGINE>_STORAGE_ENGINE=1
如:
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
若想禁用某個引擎的支持:-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
Library相關
-DWITH_READLINE=1 #啟用readline庫支持(提供可編輯的命令行)
-DWITH_SSL=system #啟用ssl庫支持(安全套接層)
-DWITH_ZLIB=system #啟用libz庫支持(zib、gzib相關)
-DWTIH_LIBWRAP=0 #禁用libwrap庫(實現了通用TCP包裝的功能,為網絡服務守護進程使用)
-DMYSQL_TCP_PORT=3306 #指定TCP端口為3306
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock #指定mysql.sock路徑
-DENABLED_LOCAL_INFILE=1 #啟用本地數據導入支持
-DEXTRA_CHARSETS=all #啟用額外的字符集類型(默認為all)
-DDEFAULT_CHARSET=utf8 #指定默認的字符集為utf8
-DDEFAULT_COLLATION=utf8_general_ci #設定默認排序規則(utf8_general_ci快速/utf8_unicode_ci准確)
-DWITH_EMBEDDED_SERVER=1 #編譯嵌入式服務器支持
-DMYSQL_USER=mysql #指定mysql用戶(默認為mysql)
-DWITH_DEBUG=0 禁用debug #(默認為禁用)
-DENABLE_PROFILING=0 #禁用Profiling分析(默認為開啟)
-DWITH_COMMENT='string' #一個關於編譯環境的描述性注釋
參考:http://www.linuxidc.com/Linux/2015-08/121667.htm