首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Linux 下 MySQL 5.5 編譯安裝完整教程與避坑指南

     編輯:MySQL 綜合教學

Linux 下 MySQL 5.5 編譯安裝完整教程與避坑指南

MySQL 5.5 引入 CMake 構建系統,取代舊版 Autotools。本文記錄在 Ubuntu/CentOS 上從源碼編譯安裝 MySQL 5.5.36 的完整流程,重點解決 OpenSSL 版本導致的編譯報錯。

一、 環境準備

1. 安裝 CMake(≥ 2.8.12)

# Ubuntu/Debian
apt-get update && apt-get install -y cmake build-essential libncurses5-dev

# CentOS/RHEL
yum install -y cmake gcc gcc-c++ ncurses-devel

# 或源碼編譯 CMake
wget https://cmake.org/files/v3.20/cmake-3.20.0.tar.gz
tar xzf cmake-3.20.0.tar.gz && cd cmake-3.20.0
./bootstrap && make && make install

驗證:cmake --version

2. 安裝依賴庫

# Ubuntu
apt-get install -y libssl-dev libaio-dev libncurses5-dev bison

# CentOS
yum install -y openssl-devel libaio-devel ncurses-devel bison

二、 下載源碼並應用 OpenSSL 补丁

MySQL 5.5.36 在 OpenSSL 1.0.0 及以下版本編譯會報 SSL_OP_NO_COMPRESSION undeclared 錯誤。解決方案:應用官方補丁。

cd /usr/local/src
wget https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.36.tar.gz
tar xzf mysql-5.5.36.tar.gz
cd mysql-5.5.36

# 下載並應用補丁
wget -O mysql-openssl.patch "https://bugs.mysql.com/file.php?id=19941&bug_id=68999"
patch -p1 < mysql-openssl.patch

替代方案:升級系統 OpenSSL 至 1.0.1+,或編譯時禁用 SSL:-DWITH_SSL=bundled(使用內置 yaSSL)。

三、 CMake 配置與編譯安裝

cmake \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  -DMYSQL_DATADIR=/data/mysql \
  -DDEFAULT_CHARSET=utf8 \
  -DDEFAULT_COLLATION=utf8_general_ci \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_PARTITION_STORAGE_ENGINE=1 \
  -DWITH_FEDERATED_STORAGE_ENGINE=1 \
  -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  -DWITH_MYISAM_STORAGE_ENGINE=1 \
  -DWITH_SSL=system \
  -DWITH_ZLIB=system \
  -DENABLED_LOCAL_INFILE=1 \
  -DWITH_READLINE=1 \
  -DEXTRA_CHARSETS=all

make -j$(nproc) && make install

編譯時間視 CPU 核心數而定,通常 10-30 分鐘。

四、 後續配置與啟動

1. 創建 mysql 用戶與目錄權限

groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mkdir -p /data/mysql /var/log/mysql /var/run/mysqld
chown -R mysql:mysql /usr/local/mysql /data/mysql /var/log/mysql /var/run/mysqld

2. 初始化數據字典(MySQL 5.5 使用 mysql_install_db)

cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql

3. 配置 my.cnf

cp support-files/my-huge.cnf /etc/my.cnf
# 修改關鍵參數
sed -i '/^\[mysqld\]/a datadir = /data/mysql' /etc/my.cnf
sed -i 's/^#innodb_/innodb_/' /etc/my.cnf  # 開啟 InnoDB 相關參數
# 根據內存調整 innodb_buffer_pool_size 等

4. 安裝啟動腳本並啟動

cp support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
chkconfig mysql on
service mysql start

5. 設置 root 密碼與安全初始化

/usr/local/mysql/bin/mysqladmin -u root password 'NewStrongPass123!'
/usr/local/mysql/bin/mysql_secure_installation

五、 常見編譯錯誤與解決

錯誤現象原因解決
SSL_OP_NO_COMPRESSION undeclaredOpenSSL 版本過低應用補丁、升級 OpenSSL 或用 -DWITH_SSL=bundled
curses library not found缺少 ncurses-develyum/apt 安裝 ncurses-devel
bison: command not found缺少 bison安裝 bison
make 過程中內存不足被 kill編譯並行度過高減小 -j 參數或增加 swap

六、 驗證安裝

/usr/local/mysql/bin/mysql -V
# mysql  Ver 14.14 Distrib 5.5.36, for linux-glibc2.12 (x86_64)

/usr/local/mysql/bin/mysql -u root -p -e "SHOW ENGINES; SHOW VARIABLES LIKE 'version%';"

七、 總結

編譯安裝可精確控制功能模組、優化參數、安裝路徑,適合對性能與安全有嚴格要求的生產環境。關鍵點:OpenSSL 版本匹配、CMake 參數規範、數據目錄權限、mysql_upgrade 流程。生產部署建議配合配置管理工具實現冪等自動化。

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