近期因工作需要,開始了對MySQL的學習。因為流程不熟悉,先后安裝了兩次MySQL,中間走了一些彎路。為了讓大家少掉坑,也為了鞏固自己的經驗,下面以MySQL5.7.23-debug版本為例,對從源碼安裝MySQL的步驟做一個簡單的梳理。
1、從github-MySQL項目下獲取git-server的路徑:https://github.com/mysql/mysql-server.git,這是mysql的源碼庫,包含所有版本的mysql源碼
2、
git clone https://github.com/mysql/mysql-server.git
下載源碼到本地, 用tar -zxvf
解壓(需要提前安裝好Git)3、5.7要添加boost庫,因此需要單獨下載boost庫。針對MySQL5.7.23版本,網上推薦版本為1.59.0,boost所有版本的下載地址為:https://www.boost.org/users/history/
4、修改build.sh中的編譯選項,主要是修改boost庫所在的目錄,cmake路徑和源碼路徑(需要提前安裝好cmake)
5、運行build.sh(其中運行了一個cmake),或者參考以下內容,進行源碼編譯:
[root@mysql software]#tar zxvf mysql-8.0.11.tar.gz
[root@mysql software]# cd mysql-8.0.11/
[root@mysql software]# mkdir Zdebug
[root@mysql software]# cd Zdebug
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNODB_MEMCACHED=ON \
-DWITH_SSL=system \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DCOMPILATION_COMMENT="zsd edition" \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/tmp \
-DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock \
-DSYSCONFDIR=/data/mysqldata/3306 > /data/software/mysql-8.0.11/Zdebug/mysql_cmake80.log 2>&1
出現下列日志:
............
-- Configuring done
-- Generating done
-- Build files have been written to: /data/software/mysql-8.0.11/Zdebug
............
6、進到debug目錄,運行make package,打成安裝包
7、在mysql_root 文件夾下分別新建相應文件(base目錄下放源碼,base_phony下放軟鏈接,log下放日志,data下放數據,tmp放tmp數據,其中base目錄下用版本號區分,base_phony下直接鏈接到當前安裝程序,其他目錄下進一步用端口號命名,例如20220)將安裝包放至相應目錄
8、初始化data目錄:
/../mysql_root/phony/20220/bin/mysqld --initialize-insecure --basedir=/../mysql_root/phony/20220 --datadir=/../mysql_root/data/20220
9、使用以下命令在后臺運行MySQL:
/../mysql_root/phony/20220/bin/mysqld --defaults-file=/../mysql_root/data/20220/my.cnf &
10、使用
mysql -uroot -h127.1 -P20220
指命令登錄 (mysql默認路徑在~/.bash_profile
中,修改完,要使用source ~/.bash_profile
生效)??
說明:針對不同版本的MySQL,安裝流程細節可能不同,大家可以多參考幾篇文章,不懂的問題多查資料。
參考內容:
1、MySQL 5.7.19 編譯安裝與配置
2、CentOS 7源碼編譯安裝MySQL 8.0