CentOS 7 默認倉庫提供 MariaDB,若需官方 MySQL 社區版,需配置 MySQL 官方 Yum 源。本文記錄標準安裝、服務管理、密碼初始化、安全加固全流程。
# 1. 下載 RPM 包 (含倉庫配置) wget https://repo.mysql.com/mysql80-community-release-el7-7.noarch.rpm # 或 MySQL 5.7: mysql57-community-release-el7-11.noarch.rpm # 2. 安裝倉庫配置 sudo rpm -ivh mysql80-community-release-el7-7.noarch.rpm # 3. 驗證倉庫啟用 yum repolist enabled | grep mysql
sudo systemctl start mysqld sudo systemctl enable mysqld sudo systemctl status mysqld
mysql -uroot -p'xYz#123Abc' # 使用上一步獲取的密碼 -- MySQL 5.7/8.0 必須修改密碼才能執行其他操作 ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123!'; -- 或 8.0 兼容舊語法 SET PASSWORD FOR 'root'@'localhost' = 'NewStrongPass123!'; FLUSH PRIVILEGES;
現象 原因 解決 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' 服務未啟動 / socket 文件路徑不匹配 / 權限問題 systemctl start mysqld; 檢查 my.cnf socket 路徑; chown -R mysql:mysql /var/lib/mysql yum install 失敗: GPG key 驗證失敗 官方 RPM 簽名金鑰未導入 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql 密碼策略拒絕簡單密碼 validate_password 插件強制複雜度 設置符合策略的密碼 (長度、大小寫、數字、特殊字符) 或暫時降低等級: SET GLOBAL validate_password.policy=LOW; 防火牆阻擋 3306 firewalld/iptables 未放行 firewall-cmd --permanent --add-port=3306/tcp --add-service=mysql; firewall-cmd --reload 八、配置文件關鍵參數 (/etc/my.cnf)
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid # 基礎優化 innodb_buffer_pool_size=1G # 物理內存 60-70% innodb_log_file_size=256M innodb_flush_log_at_trx_commit=2 # 2: 秒級刷盤, 性能與安全平衡 sync_binlog=1 # 1: 每次提交刷盤, 最高安全 max_connections=1000 character-set-server=utf8mb4 collation-server=utf8mb4_general_ci sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION # 遠程訪問綁定 (生產請限制具體 IP) bind-address=0.0.0.0Yum 安裝 MySQL 社區版優勢在於:版本可控、安全更新及時、依賴自動解決、systemd 原生管理。配合
mysql_secure_installation與基礎參數調優,即可獲得生產就緒的 MySQL 實例。