萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 5.6.10 原始碼編譯安裝最佳實踐指南

MySQL 5.5 起改用 CMake 建置系統,本文記錄從相依套件準備、CMake 參數對照、常見編譯錯誤排查到部署初始化的完整流程,供生產環境參考。

1. 建置環境準備

1.1 安裝 CMake

wget https://www.cmake.org/files/v2.8/cmake-2.8.7.tar.gz
tar zxvf cmake-2.8.7.tar.gz && cd cmake-2.8.7
./configure && make && make install

重新編譯前請清理舊快取:make clean && rm -f CMakeCache.txt

1.2 系統相依套件 (CentOS/RHEL)

yum -y install gcc gcc-c++ autoconf automake zlib-devel libxml2-devel \
ncurses-devel libmcrypt-devel libtool

1.3 建立使用者與目錄

groupadd mysql && useradd -g mysql mysql
mkdir -p /usr/local/mysql5.6/data
chown -R mysql:mysql /usr/local/mysql5.6

2. CMake 關鍵參數對照表

舊 configure 參數對應 CMake 選項(-D 前綴、大寫、底線分隔):

舊參數CMake 參數
--prefix-DCMAKE_INSTALL_PREFIX
--sysconfdir-DSYSCONFDIR
--localstatedir-DMYSQL_DATADIR
--with-tcp-port-DMYSQL_TCP_PORT
--with-unix-socket-path-DMYSQL_UNIX_ADDR
--with-mysqld-user-DMYSQL_USER
--with-extra-charsets-DEXTRA_CHARSETS
--with-plugins=innobase-DWITH_INNOBASE_STORAGE_ENGINE=1
--with-ssl-DWITH_SSL=system|bundled
--enable-local-infile-DENABLED_LOCAL_INFILE=1

3. 實戰 CMake 命令範例

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.6 \
-DSYSCONFDIR=/usr/local/mysql5.6/etc \
-DMYSQL_DATADIR=/usr/local/mysql5.6/data \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql5.6/mysql.sock \
-DMYSQL_USER=mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_READLINE=1 \
-DWITH_SSL=bundled \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1

注意:-DWITH_SSL=bundled 為 5.6+ 必備,否則 64 位元環境會因 OpenSSL 符號找不到而連結失敗;-DWITHOUT_PARTITION_STORAGE_ENGINE=1 可避免 64 位元編譯錯誤。

4. 編譯、安裝與初始化

make -j$(nproc) && make install

# 複製設定檔與啟動腳本
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld

# 初始化系統表 (5.6 仍使用 mysql_install_db)
/usr/local/mysql5.6/scripts/mysql_install_db \
--defaults-file=/etc/my.cnf \
--basedir=/usr/local/mysql5.6 \
--datadir=/usr/local/mysql5.6/data \
--user=mysql

# 設定啟動參數並啟動
sed -i 's|^basedir=.*|basedir=/usr/local/mysql5.6|' /etc/init.d/mysqld
sed -i 's|^datadir=.*|datadir=/usr/local/mysql5.6/data|' /etc/init.d/mysqld
chkconfig --add mysqld && chkconfig mysqld on
service mysqld start

5. 常見坑點彙總

  • CMakeCache 殘留:修改參數必須 rm -f CMakeCache.txt 重跑。
  • SSL 連結錯誤:CentOS 5/6 預設 OpenSSL 版本過舊,務必用 bundled。
  • Partition 引擎編譯失敗:64 位元上浮點運算符號缺失,直接排除。
  • 資料目錄權限:mysqld 啟動失敗常因 datadir 擁有者非 mysql 或目錄不可寫。

遵循上述流程,可在 Linux 上穩定建置高效能的 MySQL 5.6 實例。

copyright © 萬盛學電腦網 all rights reserved