首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux 下 MySQL 5.5.8 源碼編譯安裝完整實戰記錄

     編輯:MySQL 資料庫相關知識

環境準備

  • OS:Ubuntu 10.10 (適用於 Debian/Ubuntu 系列)
  • 源碼包:mysql-5.5.8.tar.gz
  • 核心依賴:cmake、gcc/g++、make、perl、libncurses5-dev、bison、chkconfig

依賴安裝指令

sudo apt-get update
sudo apt-get install cmake build-essential libncurses5-dev bison chkconfig

關鍵點:缺 libncurses5-dev 會報 Curses library not found;bison 缺失僅警告但建議裝上。

源碼編譯參數詳解

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/home/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql
參數作用建議值
CMAKE_INSTALL_PREFIX安裝根目錄/usr/local/mysql
MYSQL_DATADIR數據文件目錄獨立磁盤分區
DEFAULT_CHARSET默認字符集utf8 / utf8mb4
DEFAULT_COLLATION默認校對集utf8_general_ci
WITH_*_STORAGE_ENGINE靜態編譯存儲引擎按需開啟

編譯安裝流程

# 1. 解壓
tar zxvf mysql-5.5.8.tar.gz
cd mysql-5.5.8

# 2. cmake 配置(上述參數一行執行)
cmake [參數...]

# 3. 編譯安裝(約 20 分鐘)
make -j$(nproc)
sudo make install

後續初始化配置

# 1. 初始化系統表
cd /usr/local/mysql/scripts
./mysql_install_db --basedir=/usr/local/mysql --datadir=/home/mysql/data --user=mysql

# 2. 配置文件
sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
# 編輯 /etc/my.cnf [mysqld] 區塊添加:
character-set-server = utf8

# 3. 服務腳本
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 修改 basedir/datadir 後:
sudo service mysqld start

# 4. 開機自啟
sudo chkconfig --level 3 mysqld on

# 5. 命令軟鏈
sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/
sudo ln -s /usr/local/mysql/bin/mysqldump /usr/bin/
sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/

中文亂碼終極解決

編譯指定 DEFAULT_CHARSET=utf8 後,character_set_server 仍可能為 latin1。必須在 /etc/my.cnf 的 [mysqld] 區塊顯式添加:

character-set-server = utf8

重啟後驗證:

mysql> SHOW VARIABLES LIKE 'character_set%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_server     | utf8                       |
| character_set_database   | utf8                       |
| ...                      | ...                        |
+--------------------------+----------------------------+

避坑指南

  • 勿在 5.5+ 使用 default-character-set:會報 unknown variable 導致啟動失敗
  • 官方源碼 Bug 修補:5.5.8 存在已知編譯錯誤,需參考 官方郵件列表 手動修補後再編譯
  • 數據目錄權限:chown -R mysql:mysql /home/mysql/data 必須在啟動前完成

源碼編譯雖耗時,但可精準控制功能模組、優化參數,適合對效能有極致要求的生產環境。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved