Ubuntu 套件庫版本可能較舊,手動編譯安裝 MySQL 可掌握版本、啟用特定功能、優化編譯參數。本文記錄在 Ubuntu 上從原始碼編譯安裝 MySQL 5.0.40 的完整流程,含依賴處理、使用者建立、配置優化、系統整合。
# 更新套件索引 sudo apt-get update # 安裝編譯工具鏈 sudo apt-get install g++ gcc make automake perl # 安裝 MySQL 編譯依賴 sudo apt-get install build-essential libncurses5-dev libssl-dev
注意:原文提到 kdelibs4-dev 實為 KDE 開發庫,MySQL 編譯不需要,此處移除避免誤導。
sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql
-r 建立系統帳號,-s /bin/false 禁止登入 Shell。
wget https://downloads.mysql.com/archives/get/file/mysql-5.0.40.tar.gz tar zxvf mysql-5.0.40.tar.gz cd mysql-5.0.40
./configure \ --prefix=/usr/local/mysql \ --with-charset=utf8mb4 \ --with-collation=utf8mb4_general_ci \ --with-extra-charsets=all \ --with-plugins=innobase,myisam,partition \ --enable-thread-safe-client \ --enable-local-infile \ --with-big-tables \ --with-readline \ --with-ssl \ --with-zlib-dir=bundled
關鍵參數說明:
--prefix:安裝根目錄--with-charset=utf8mb4:預設字元集支援 Emoji--with-plugins:靜態編譯常用引擎--with-ssl:啟用 SSL 連線make -j$(nproc) # 多核心並行編譯 sudo make install
# 複製範本配置 sudo cp support-files/my-medium.cnf /etc/my.cnf # 設定目錄權限 cd /usr/local/mysql sudo chown -R mysql:mysql . sudo chown -R root . sudo chown -R mysql:mysql data
sudo /usr/local/mysql/bin/mysql_install_db --user=mysql
# 前景啟動測試 sudo /usr/local/mysql/bin/mysqld_safe --user=mysql & # 或複製啟動腳本設定開機自啟 sudo cp support-files/mysql.server /etc/init.d/mysql sudo update-rc.d mysql defaults sudo service mysql start
/usr/local/mysql/bin/mysqladmin -u root password '新密碼' /usr/local/mysql/bin/mysql -u root -p -e "SHOW DATABASES;"
| 問題 | 解決 |
|---|---|
| configure: error: no termcap library | 安裝 libncurses5-dev |
| 編譯失敗: atomic operations | GCC 版本過新,加 -fno-strict-aliasing 或降級 GCC |
| 啟動失敗: Can't create test file | datadir 權限錯誤,chown -R mysql:mysql /usr/local/mysql/data |
| 連線失敗 | 檢查 /etc/my.cnf bind-address、防火牆 3306 |
Ubuntu 手動編譯安裝 MySQL 核心流程:裝依賴 → 建用戶 → configure 關鍵參數 → make -j 安裝 → mysql_install_db → 設權限 → 啟動驗證。關鍵在 --with-charset=utf8mb4 與 --with-plugins 靜態編譯引擎。編譯安裝雖繁瑣,但能精確控制版本與功能,適合有特殊需求的生產環境。