MySQL 5.5+ 放棄 autotools 改用 CMake 構建。本文記錄從源碼編譯安裝 MySQL 5.6.11 的完整步驟,含 CMake 依賴安裝、關鍵編譯參數、數據目錄初始化、權限設置、環境變量配置。
wget https://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz
tar zxvf cmake-2.8.10.2.tar.gz
cd cmake-2.8.10.2
./configure && make && make install
tar zxvf mysql-5.6.11.tar.gz
cd mysql-5.6.11
# 建立安裝與數據目錄
mkdir -p /usr/local/mysql /usr/local/mysql/data
# 關鍵 CMake 參數
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
常用參數補充:
-DWITH_INNOBASE_STORAGE_ENGINE=1 啟用 InnoDB(默認開)。-DWITH_PARTITION_STORAGE_ENGINE=1 啟用分區。-DWITH_SSL=system 使用系統 OpenSSL。-DMYSQL_TCP_PORT=3306 指定端口。make && make install
cd /usr/local/mysql
chown -R root:mysql .
chown -R mysql:mysql data
# 初始化系統表(5.6 必須指定 basedir/datadir)
cd scripts
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
關鍵: 若不指定 --basedir、--datadir 會報 FATAL ERROR: Could not find ./bin/my_print_defaults。
cp support-files/my-default.cnf /etc/my.cnf
# 編輯 /etc/my.cnf 調整 innodb_buffer_pool_size 等參數
# 環境變量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
/usr/local/mysql/support-files/mysql.server start
mysql -u root -p # 密碼為空,登入後修改
ncurses-devel、bison、gcc-c++ 會編譯失敗,預先 yum install -y ncurses-devel bison gcc-c++。swap 或減少並行 make -j2。