環境資訊
OS: CentOS 6.5 (Final) x86_64
Kernel: 2.6.32-504.3.3.el6.x86_64
MySQL 版本: 5.6.22
安裝包: MySQL-5.6.22-1.linux_glibc2.5.x86_64.rpm-bundle.tar
安裝前準備
1. 檢查並移除舊版本
# 查詢已安裝 MySQL 相關包
rpm -qa | grep -i mysql
# 強制移除舊版 mysql-libs(不檢查依賴)
rpm -e mysql-libs-5.1.71-1.el6.x86_64 --nodeps
# 清理殘留檔案
find / -name "*mysql*" -type f 2>/dev/null | xargs rm -rf
2. 確認 mysql 使用者與群組
id mysql
# 若不存在則建立
groupadd -r mysql
useradd -r -g mysql -s /sbin/nologin mysql
解包與安裝順序
# 解壓 bundle 包
mkdir -p /usr/local/mysql_rpm && cd /usr/local/mysql_rpm
tar -xvf MySQL-5.6.22-1.linux_glibc2.5.x86_64.rpm-bundle.tar
# 檔案清單:
# MySQL-server-5.6.22-1.linux_glibc2.5.x86_64.rpm # 核心服務(必裝)
# MySQL-client-5.6.22-1.linux_glibc2.5.x86_64.rpm # 客戶端工具(必裝)
# MySQL-shared-5.6.22-1.linux_glibc2.5.x86_64.rpm # 共享庫
# MySQL-shared-compat-5.6.22-1.linux_glibc2.5.x86_64.rpm # 相容舊版共享庫
# MySQL-devel-5.6.22-1.linux_glibc2.5.x86_64.rpm # 開發頭文件/庫
# MySQL-embedded-5.6.22-1.linux_glibc2.5.x86_64.rpm # 嵌入式庫
# MySQL-test-5.6.22-1.linux_glibc2.5.x86_64.rpm # 測試套件
核心安裝步驟
# 1. 安裝 Server(會自動初始化 data 目錄、生成隨機 root 密碼)
rpm -ivh MySQL-server-5.6.22-1.linux_glibc2.5.x86_64.rpm
# 2. 安裝 Client
rpm -ivh MySQL-client-5.6.22-1.linux_glibc2.5.x86_64.rpm
# 3. 安裝 Shared Compat(解決舊版 libmysqlclient 依賴)
rpm -ivh MySQL-shared-compat-5.6.22-1.linux_glibc2.5.x86_64.rpm
安裝後配置
1. 複製預設配置檔
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
# 根據需求編輯 /etc/my.cnf,如調整 innodb_buffer_pool_size、字元集等
2. 啟動服務並設定開機自啟
service mysql start
chkconfig mysql on
3. 修改 root 密碼
# 查看安裝時生成的隨機密碼
cat /root/.mysql_secret
# 範例輸出:The random password set for the root user at ... : F76Wy1A4G9ZuLcaG
# 登入並修改密碼
mysql -u root -p
# 輸入上述隨機密碼
mysql> SET PASSWORD = PASSWORD('NewPass123!');
mysql> FLUSH PRIVILEGES;
4. 執行安全初始化腳本(推薦)
/usr/bin/mysql_secure_installation
# 依提示:修改 root 密碼、移除匿名用戶、禁止 root 遠程登入、移除 test 資料庫、重新載入權限表
RPM 安裝檔案佈局參考
| 目錄 | 內容 |
| /usr/bin | 客戶端程式、腳本 |
| /usr/sbin | mysqld 服務程式 |
| /var/lib/mysql | 資料檔案、日誌 |
| /usr/share/mysql | 錯誤訊息、字元集、範例配置、SQL 腳本 |
| /usr/include/mysql | C API 頭文件 |
| /usr/lib64/mysql | 共享庫 |
驗證安裝
# 檢查埠口監聽
netstat -anpl | grep 3306
# tcp 0 0 :::3306 :::* LISTEN 5924/mysqld
# 測試連線
mysql -u root -p -e "SELECT VERSION();"
# +-----------+
# | VERSION() |
# +-----------+
# | 5.6.22 |
# +-----------+
常見問題排查
- 缺少 libaio:
yum install -y libaio
- SELinux 阻擋:
setenforce 0 或設定 mysql_connect_any 布林值。
- 防火牆:
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
- 啟動失敗查看錯誤日誌:
tail -f /var/lib/mysql/hostname.err