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

CentOS 6 源碼編譯安裝 MySQL 5.6 完整教程

     編輯:MySQL 綜合教學

CentOS 6 源碼編譯安裝 MySQL 5.6 完整教程

MySQL 5.5 版本起改用 CMake 取代傳統 configure 進行編譯配置。本文記錄在 CentOS 6 環境下,從源碼包編譯安裝 MySQL 5.6.15 的完整流程,含依賴安裝、CMake 參數詳解、初始化、服務配置與安全加固。

環境規劃

項目路徑
安裝路徑/usr/local/mysql
資料目錄/data/mysql
源碼存放/usr/software
下載地址https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz

1. 安裝編譯依賴

# 基礎工具
yum install cmake make -y

# 核心編譯依賴(MySQL 5.6 最低需求)
yum install gcc gcc-c++ autoconf bison automake zlib* flex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* -y

2. 解壓與 CMake 配置

cd /usr/software
tar -zxvf mysql-5.6.15.tar.gz
cd mysql-5.6.15

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/data/mysql/ \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306

CMake 關鍵參數說明

  • 預設引擎:MyISAM, MERGE, MEMORY, CSV 為強制內建,無需額外聲明
  • InnoDB 必須顯式啟用:-DWITH_INNOBASE_STORAGE_ENGINE=1
  • 字符集:預設 utf8 + utf8_general_ci,額外支援 gbk
  • Readline:啟用命令行編輯與歷史記錄

3. 編譯安裝

make && make install

編譯時間視 CPU 核心數而定,建議使用 make -j$(nproc) 並行加速。

4. 建立用戶與權限

# 檢查用戶是否存在
cat /etc/passwd | grep mysql
cat /etc/group | grep mysql

# 不存在則建立
groupadd mysql
useradd mysql -g mysql -s /sbin/nologin

# 關鍵權限設定(必須執行)
cd /usr/local/mysql
chown mysql.mysql -R .
chown mysql.mysql -R /data/mysql

5. 初始化資料庫

# 複製預設配置
cp support-files/my-default.cnf /etc/my.cnf

# 賦予安裝腳本執行權限
chmod 755 scripts/mysql_install_db

# 執行初始化(輸出大量 InnoDB 初始化日誌屬正常)
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/

6. 服務配置與啟動

# 複製啟動腳本
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld

# 設定開機自啟
chkconfig --add mysqld
chkconfig mysqld on

# 啟動服務
service mysqld start

7. 安全初始化

# 設定 root 密碼
/usr/local/mysql/bin/mysqladmin -u root password 'yourpassword'

# 登入清理匿名用戶與測試庫
/usr/local/mysql/bin/mysql -u root -p
mysql> USE mysql;
mysql> DELETE FROM user WHERE Password='';
mysql> FLUSH PRIVILEGES;

# 允許 root 遠程登入(生產環境建議建立專用帳號並限制 IP)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword';
mysql> FLUSH PRIVILEGES;
mysql> SELECT User, Password, Host FROM user;
mysql> QUIT

8. 驗證安裝

/usr/local/mysql/bin/mysql -u root -p -e "SELECT VERSION();"
# 輸出應包含 5.6.15

常見問題排查

  • libmysqlclient.so.18 找不到:ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
  • 配置檔衝突:/etc/my.cnf 優先級高於 /usr/local/mysql/my.cnf,建議統一管理
  • 防火牆:開放 3306 埠 `iptables -A INPUT -p tcp --dport 3306 -j ACCEPT`

源碼編譯安裝雖步驟較多,但可精確控制功能模組、優化參數與安裝路徑,適合對效能與安全有嚴格要求的生產環境。

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