Ubuntu 16.04下 Mysql5.7.17原始碼編譯與安裝
Ubuntu 16.04下 Mysql5.7.17原始碼編譯與安裝
系統環境
ubuntu 16.04 64位
官方文件說明:http://dev.mysql.com/doc/refman/5.7/en/source-installation.html
一、 系統安裝條件
1.cmake
MySQL使用cmake跨平臺工具預編譯原始碼,用於設定mysql的編譯引數。
sudo apt-get install cmake
- 1
2.bison
Linux下C/C++語法分析器
sudo apt-get install bison
- 1
3.ncurses
字元終端處理庫
sudo apt-get install libncurses5-dev
- 1
4. gcc
GCC是Linux下的C語言編譯工具,mysql原始碼編譯完全由C和C++編寫。Ubuntu預設已裝。
5. Boost 1.59.0
mysql原始碼中用到了C++的Boost庫,要求必須安裝boost1.59.0
下載Boost1.59.0原始碼,並解壓到/usr/local/目錄下:
wget -O https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gztar -zxvf boost_1_59_0.tar.gz -C /usr/local/
- 1
- 2
二、 下載MySQL原始碼
從github上下載mysql的原始碼
https://github.com/mysql/mysql-server.git
三、 編譯MySQL原始碼
1. 新增Mysql使用者
groupadd mysqluseradd -r-g mysql mysql
- 1
- 2
2. 建立Mysql安裝程式的目錄和資料檔案的目錄
mkdir /usr/local/mysqlmkdir /home/MysqlDatachown -R mysql.mysql /user/local/mysqlchown -R mysql.mysql /home/MysqlData
- 1
- 2
- 3
- 4
3. 解壓縮Mysql5.7原始碼,並編譯
tar -zxvf mysql-server-5.7.zipcd mysql-server-5.7
- 1
- 2
用cmake配置mysql預編譯引數:
-DCMAKE_INSTALL_PREFIX:安裝路徑
-DMYSQL_DATADIR:資料存放目錄
-DWITH_BOOST:boost原始碼路徑
-DSYSCONFDIR:my.cnf配置檔案目錄
-DEFAULT_CHARSET:資料庫預設字元編碼
-DDEFAULT_COLLATION:預設排序規則
-DENABLED_LOCAL_INFILE:允許從本檔案匯入資料
-DEXTRA_CHARSETS:安裝所有字符集
更多預編譯配置引數請參考mysql官方文件說明:http://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html#cmake-general-options
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/home/MysqlData \-DWITH_BOOST=/usr/local/boost_1_59_0 \-DSYSCONFDIR=/etc \-DEXTRA_CHARSETS=all
- 1
- 2
- 3
- 4
- 5
編譯並安裝(兩個命令分開進行):
sudo makesudo make install
- 1
- 2
三、 安裝配置MySQL
1. 初始化Mysql資料庫
cd/usr/local/mysql./bin/mysql_install_db--user=mysql--basedir=/usr/local/mysql--datadir=/home/MysqlData#5.7.6之後版本初始系統資料庫指令碼(本文使用上種方式)./bin/mysqld--initialize-insecure--user=mysql--basedir=/usr/local/mysql--datadir=/home/MysqlData./bin/mysql_ssl_rsa_setup
- 1
- 2
- 3
- 4
- 5
注意:如果使用–initialize引數初始化系統資料庫之後,會在~/.mysql_secret檔案中生成root使用者的一個臨時密碼,同時也在初始化日誌中列印出來了
2.配置檔案
cp support-files/my-default.cnf /etc/my.cnfvim /etc/my.cnf[client]port=3306socket=/usr/local/mysql/mysql.sock[mysqld]port=3306basedir=/usr/local/mysqldatadir=/home/MysqlDatasocket=/usr/local/mysql/mysql.sockpid-file=/usr/local/mysql/mysql.pidmax_connections=500default-storage-engine=MYISAM
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
3.配置Mysql服務
由於Ubuntu沒有chkconfig命令,用update-rc.d命令將Mysql服務加入到系統服務中。
cp support-files/mysql.server /etc/init.d/mysqlupdate-rc.d mysql defaultsupdate-rc.d mysql start 2345 . stop 016
- 1
- 2
- 3
4.啟動Mysql服務
shell> service mysqld start # 啟動mysql服務shell> service mysqld stop # 停止mysql服務shell> service mysqld restart # 重新啟動mysql服務
- 1
- 2
- 3
5.設定資料庫密碼
my.cnf中加上一行skip-grant-tables
免密登入後修改user表
再去掉skip-grant-tables,重啟Mysql
6.配置mysql環境變數
shell> vim /etc/profileshell> export PATH=/usr/local/mysql/bin:$PATHshell> source /etc/profile
- 1
- 2
- 3
四、其它注意事項
如果中途編譯失敗了,需要刪除cmake生成的預編譯配置引數的快取檔案和make編譯後生成的檔案,再重新編譯。
shell> cd mysql-server-5.7shell> rm -f CMakeCache.txtshell> make clean
相關文章
- Ubuntu 16.04原始碼編譯安裝Apache 2.4.25教程Ubuntu原始碼編譯Apache
- ubuntu 16.04 LTS 核心原始碼下載編譯流程Ubuntu原始碼編譯
- MySQL5.7.17原始碼編譯安裝時的注意事項MySql原始碼編譯
- ubuntu下 編譯安裝swftoolsUbuntu編譯
- Ubuntu下Android原始碼以及核心下載與編譯UbuntuAndroid原始碼編譯
- 04 原始碼編譯安裝與介紹原始碼編譯
- ORB_SLAM2安裝編譯測試ubuntu16.04ORBSLAM編譯Ubuntu
- ubuntu16.04 下安裝mysqlUbuntuMySql
- Ubuntu 16.04 下安裝配置caffeUbuntu
- ubuntu16.04 下kvm安裝Ubuntu
- 原始碼編譯安裝Redis原始碼編譯Redis
- LAMP原始碼編譯安裝LAMP原始碼編譯
- 基於Ubuntu16.04下載與編譯OpenWrt系統Ubuntu編譯
- Centos7下原始碼編譯安裝apacheCentOS原始碼編譯Apache
- CentOS 6.7下MySQL 5.6原始碼編譯安裝CentOSMySql原始碼編譯
- CentOS 6.7下原始碼編譯安裝MySQL 5.7.5CentOS原始碼編譯MySql
- Linux下通過原始碼編譯安裝程式Linux原始碼編譯
- 原始碼編譯安裝的原理原始碼編譯
- zabbix agent原始碼編譯安裝原始碼編譯
- 原始碼編譯安裝MySQL 5.7.9原始碼編譯MySql
- 原始碼的下載與編譯原始碼編譯
- UBuntu16.04下安裝Docker(親測)UbuntuDocker
- Ubuntu16.04下安裝gtsam-3.2.1Ubuntu
- ubuntu16.04下安裝NS3.27UbuntuS3
- ubuntu16.04系統下安裝dockerUbuntuDocker
- Linux下原始碼編譯方式安裝MySQL5.5Linux原始碼編譯MySql
- ubuntu編譯安裝kernel教程。Ubuntu編譯
- ubuntu thrift 0.9.3編譯安裝Ubuntu編譯
- Ubuntu 16.04 安裝 EmacsUbuntuMac
- Vagrant 安裝ubuntu 16.04Ubuntu
- Ubuntu 16.04安裝NginxUbuntuNginx
- Ubuntu 16.04 安裝 RedisUbuntuRedis
- nginx原始碼編譯安裝(詳解)Nginx原始碼編譯
- php-7.1.0原始碼編譯安裝PHP原始碼編譯
- 詳解LAMP原始碼編譯安裝LAMP原始碼編譯
- LAMP原始碼編譯安裝配置+wordpressLAMP原始碼編譯
- lnmp環境安裝-原始碼編譯LNMP原始碼編譯
- MySQL 5.6原始碼編譯安裝流程MySql原始碼編譯