萬盛學電腦網

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

CentOS 6.4 源碼編譯安裝 MySQL 5.6 完整實戰教程

環境準備與依賴安裝

yum -y install gcc gcc-c++ autoconf automake zlib* flex* libxml* \
  ncurses-devel libmcrypt* libtool-ltdl-devel* cmake cmake-gui \
  libaio-devel bison-devel make
關鍵包:cmake(構建系統)、ncurses-devel(終端庫)、libaio-devel(異步 I/O)、bison(解析器生成器)。

下載與編譯安裝

1. 獲取源碼包

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.6.51.tar.gz
# 或官網歷史版本頁面下載對應版本

2. CMake 配置參數詳解

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql5651 \
-DMYSQL_DATADIR=/usr/local/mysql5651/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci

3. 編譯安裝

make -j$(nproc) && make install
常見編譯錯誤:CMake Error at info_macros.cmake:90 (FILE): file Internal CMake error when trying to open file: .../Docs/INFO_BIN
解決:yum install -y perl-Data-Dumper 或臨時修改 cmake/info_bin.cmake 註釋該段邏輯,重新 make。

後配置與初始化

1. 創建專用用戶組

groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

2. 目錄權限歸屬

chown -R mysql:mysql /usr/local/mysql5651

3. 初始化系統表(關鍵步驟)

cd /usr/local/mysql5651
scripts/mysql_install_db \
  --basedir=/usr/local/mysql5651 \
  --datadir=/usr/local/mysql5651/data \
  --user=mysql
生成 mysql 系統庫、performance_schema、information_schema 等核心系統表。

4. 配置文件部署

# 備份系統自帶 my.cnf(避免干擾)
mv /etc/my.cnf /etc/my.cnf.bak

# 複製官方樣例配置
cp support-files/my-default.cnf /etc/my.cnf

# 編輯關鍵參數
vim /etc/my.cnf
# [mysqld] 區塊添加/修改:
basedir = /usr/local/mysql5651
datadir = /usr/local/mysql5651/data
character_set_server = utf8mb4
collation_server = utf8mb4_general_ci
sql_mode = STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION

服務管理與啟動

1. 註冊系統服務

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

2. 啟動服務

service mysqld start
# 或 systemctl start mysqld (CentOS 7+)

3. 環境變量配置

echo 'export PATH=/usr/local/mysql5651/bin:$PATH' >> /etc/profile
source /etc/profile

安全初始化與遠程授權

1. 修改 root 密碼

mysql -uroot -p  # 初始無密碼直接回車
mysql> SET PASSWORD = PASSWORD('StrongRootPass#2024');

2. 執行安全腳本(推薦)

/usr/local/mysql5651/bin/mysql_secure_installation

交互式完成:設置 root 密碼、移除匿名用戶、禁止 root 遠程登錄、刪除 test 庫、刷新權限。

3. 開放 root 遠程訪問(按需)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.%' 
    IDENTIFIED BY 'RemotePass#2024' WITH GRANT OPTION;
FLUSH PRIVILEGES;

防火牆放行 3306 端口

# iptables
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save

# 或 firewalld (CentOS 7+)
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload

常見問題排查

問題解決方案
啟動報 "The server quit without updating PID file"檢查 datadir 權限、磁盤空間、my.cnf 路徑、錯誤日誌
連接報 "Can't connect to local MySQL server through socket"確認 socket 路徑一致、服務已啟動、客戶端指定 --socket
中文亂碼全鏈路 utf8mb4、my.cnf 設置 character_set_server
編譯報 CMake 錯誤安裝 perl 依賴、或降級 cmake 版本

總結

CentOS 6.4 源碼編譯 MySQL 5.6 核心流程:**依賴包 → CMake 定制編譯 → 專用用戶權限 → 數據目錄初始化 → 配置文件部署 → 服務註冊啟動 → 安全初始化 → 防火牆放行**。關鍵點在於 CMAKE_INSTALL_PREFIX/MYSQL_DATADIR 路徑規劃、character_set_server=utf8mb4 統一編碼、mysql_install_db 正確初始化。生產環境建議優先使用官方 RPM/YUM 仓庫或 Docker 部署,源碼編譯適合深度定制或舊系統維護場景。

copyright © 萬盛學電腦網 all rights reserved