原始碼編譯安裝 MySQL 可自訂安裝路徑、字元集、儲存引擎與編譯優化,適合有特殊需求的生產環境或學習內部機制。
# 建立 mysql 使用者/群組
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
# 下載原始碼至 /usr/local/src
# 假設檔名 mysql-5.1.tar.gz
tar -zxvf mysql-5.1.tar.gz
cd mysql-5.1
./configure \
--prefix=/usr/local/mysql \
--with-charset=gbk \
--with-extra-charsets=complex \
--enable-thread-safe-client \
--with-big-tables \
--with-plugins=innobase,innodb_plugin \
--with-embedded-server \
--enable-local-infile \
--with-readline
make clean && make && make install
# 複製配置範本
cp support-files/my-medium.cnf /etc/my.cnf
# 編輯 /etc/my.cnf 註解 binlog(若不需複寫)
# log-bin=mysql-bin → #log-bin=mysql-bin
# 初始化資料目錄
cd /usr/local/mysql
bin/mysql_install_db --user=mysql
# 目錄權限
chown -R root .
chown -R mysql var
chgrp -R mysql .
# 啟動服務
bin/mysqld_safe --user=mysql &
# 加入 PATH
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
# 驗證連線
mysql -u root
# 成功進入 mysql> 提示符
| 參數 | 用途 |
|---|---|
| --prefix | 安裝根目錄 |
| --with-charset | 預設字元集 |
| --with-extra-charsets | 額外支援字元集 |
| --with-plugins | 靜態編譯儲存引擎 |
| --with-embedded-server | 編譯嵌入式函式庫 |
| --enable-thread-safe-client | 執行緒安全客戶端 |
| --with-big-tables | 支援 >2GB 表 |
--with-charset=utf8mb4 並啟用 --with-plugins=innodb(單一 InnoDB)。cmake (MySQL 5.5+) 替代 configure,參數名稱不同(如 -DDEFAULT_CHARSET=utf8mb4)。CFLAGS="-O3 -march=native" CXXFLAGS="-O3 -march=native" ./configure ...。/etc/systemd/system/mysqld.service 管理生命週期。原始碼安裝雖步驟較多,但能深度掌控 MySQL 執行體,是 DBA 進階必修技能。