YUM 安裝 MySQL 可自動解決依賴、統一管理版本、便於後續 yum update 打補丁。本文涵蓋檢查現狀、安裝客戶端/服務端/開發包、字符集配置、服務管理、開機自啟、賬號授權全流程。
# 查看已安裝 MySQL 相關包
yum list installed mysql*
# 查看可用安裝包
yum list mysql*
# 僅安裝客戶端(連接遠程庫)
yum install mysql
# 安裝服務端 + 開發庫(含頭文件、庫文件,編譯驅動需用)
yum install mysql-server mysql-devel
注意:CentOS 7 / RHEL 7 預設倉庫提供的是 MariaDB 兼容包(包名仍為 mysql-server),若需官方 MySQL 5.7/8.0,請先安裝官方 YUM 源:
# MySQL 8.0 官方源
rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum install mysql-community-server
vim /etc/my.cnf
# [mysqld] 區段下添加
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# [client] 區段
default-character-set = utf8mb4
# [mysql] 區段
default-character-set = utf8mb4
修改後必須 systemctl restart mysqld 生效。
| 操作 | Systemd (CentOS 7+) | SysVinit (CentOS 6) |
|---|---|---|
| 啟動 | systemctl start mysqld | service mysqld start |
| 停止 | systemctl stop mysqld | service mysqld stop |
| 重啟 | systemctl restart mysqld | service mysqld restart |
| 狀態 | systemctl status mysqld | service mysqld status |
| 開機自啟 | systemctl enable mysqld | chkconfig --add mysqld && chkconfig mysqld on |
| 查看自啟狀態 | systemctl is-enabled mysqld | chkconfig --list | grep mysqld |
# 1. 啟動服務(會自動初始化 data 目錄、生成臨時 root 密碼)
systemctl start mysqld
# 2. 查看臨時密碼
grep 'temporary password' /var/log/mysqld.log
# 3. 登入並修改密碼(需符合 validate_password 策略)
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123!';
-- 允許任意主機訪問 hive_metadata 庫
CREATE USER 'hive'@'%' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON hive_metadata.* TO 'hive'@'%';
-- 僅允許本機/特定 IP
CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
CREATE USER 'hive'@'192.168.1.100' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON hive_metadata.* TO 'hive'@'localhost';
GRANT ALL PRIVILEGES ON hive_metadata.* TO 'hive'@'192.168.1.100';
FLUSH PRIVILEGES;
# firewalld (CentOS 7+)
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
# iptables (CentOS 6)
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
service iptables save
| 現象 | 原因 | 解決 |
|---|---|---|
| 無法遠程連接 | bind-address=127.0.0.1 / 防火牆 / 權限 host='%' | my.cnf 註釋 bind-address、開防火牆、GRANT ... TO 'user'@'%' |
| 中文亂碼 | 字符集未統一 utf8mb4 | 修改 my.cnf 重啟、表/庫/連接均指定 utf8mb4 |
| 密碼策略太強無法設置簡單密碼 | validate_password_policy=MEDIUM | 暫時降低:SET GLOBAL validate_password_policy=LOW; 或用複雜密碼 |
| yum 安裝報 GPG key 錯誤 | 官方源 RPM 簽名驗證失敗 | rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 |
YUM 安裝是生產環境標準化部署的首選,配合 Ansible/SaltStack 可實現百台級一鍵交付。