YUM 安裝自動解決依賴、便於升級維護、系統集成度高,是 CentOS 7 生產環境推薦方式。
# 下載 repo 包 (含 community 和 source 兩個源)
wget https://repo.mysql.com/mysql80-community-release-el7-5.noarch.rpm
# 安裝 repo
rpm -ivh mysql80-community-release-el7-5.noarch.rpm
# 查看可用版本 (默認啟用 8.0,如需 5.7 需手動切換)
yum repolist enabled | grep mysql
切換到 5.7 版本 (如需要):
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
yum install -y mysql-community-server
systemctl start mysqld
systemctl enable mysqld
# 查看臨時 root 密碼 (5.7+ 特性)
grep 'temporary password' /var/log/mysqld.log
mysql_secure_installation
交互式完成:修改 root 密碼、移除匿名用戶、禁止 root 遠程登錄、刪除 test 庫、重載權限表。
若啟動報錯 Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock':
# 修正數據目錄擁有權
chown -R mysql:mysql /var/lib/mysql
systemctl restart mysqld
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload
# 或關閉 firewalld 使用 iptables (生產環境不建議)
mysql -u root -p
-- 唯讀應用賬號
CREATE USER 'app_read'@'%' IDENTIFIED BY 'ReadOnlyPass123!';
GRANT SELECT ON app_db.* TO 'app_read'@'%';
-- 讀寫應用賬號
CREATE USER 'app_rw'@'%' IDENTIFIED BY 'ReadWritePass123!';
GRANT SELECT,INSERT,UPDATE,DELETE ON app_db.* TO 'app_rw'@'%';
-- 管理員賬號 (僅限內網)
CREATE USER 'dbadmin'@'10.0.0.%' IDENTIFIED BY 'AdminPass123!';
GRANT ALL PRIVILEGES ON *.* TO 'dbadmin'@'10.0.0.%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
systemctl stop mysqld
mkdir -p /data/mysql
mv /var/lib/mysql/* /data/mysql/
chown -R mysql:mysql /data/mysql
# 修改配置
vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
# 更新 SELinux 上下文 (如啟用)
semanage fcontext -a -t mysqld_db_t "/data/mysql(/.*)?"
restorecon -Rv /data/mysql
systemctl start mysqld
編輯 /etc/my.cnf [mysqld] 區段:
innodb_buffer_pool_size = 2G # 物理內存 60-70%
innodb_log_file_size = 256M
innodb_log_buffer_size = 64M
max_connections = 500
thread_cache_size = 50
table_open_cache = 2000
character_set_server = utf8mb4
default_storage_engine = InnoDB
sql_mode = STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
# 連接測試
mysql -u app_rw -p -h localhost
# 狀態檢查
mysqladmin -u root -p status
SHOW GLOBAL STATUS LIKE 'Uptime';
SHOW VARIABLES LIKE 'version';
本教程提供了 CentOS 7 YUM 安裝 MySQL 的企業級部署全流程,涵蓋源配置、安裝、安全初始化、權限模型、目錄遷移、防火牆、基礎調優。生產環境建議後續補充:主從復制、備份策略、監控告警、審計日誌、SSL 加密傳輸。