CentOS 6.x 預裝 MariaDB/MySQL 較舊版本,生產環境常需手動升級至官方 RPM 包。本文記錄完整安裝流程,含衝突清理、依賴解決、安全初始化。
# 查詢已安裝包 rpm -qa | grep -i mysql rpm -qa | grep -i mariadb # 強制卸載(忽略依賴) rpm -e --nodeps mysql-libs-5.1.x rpm -e --nodeps mariadb-libs-5.5.x # 或批量 yum remove -y mysql* mariadb*
# 官網下載對應版本,例 MySQL 5.7.44 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44-1.el6.x86_64.rpm-bundle.tar tar -xvf mysql-5.7.44-1.el6.x86_64.rpm-bundle.tar
# 1. 共享庫(必須最先) rpm -ivh mysql-community-common-5.7.44-1.el6.x86_64.rpm rpm -ivh mysql-community-libs-5.7.44-1.el6.x86_64.rpm rpm -ivh mysql-community-libs-compat-5.7.44-1.el6.x86_64.rpm # 2. 客戶端 rpm -ivh mysql-community-client-5.7.44-1.el6.x86_64.rpm # 3. 服務端 rpm -ivh mysql-community-server-5.7.44-1.el6.x86_64.rpm # 4. 開發包(可選) rpm -ivh mysql-community-devel-5.7.44-1.el6.x86_64.rpm
# 1. 初始化數據目錄(5.7+ 自動生成隨機 root 密碼) mysqld --initialize --user=mysql --datadir=/var/lib/mysql # 2. 查看臨時密碼 grep 'temporary password' /var/log/mysqld.log # 3. 啟動服務並設開機自啟 service mysqld start chkconfig mysqld on # 4. 首次登入修改密碼 mysql -uroot -p'臨時密碼' ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123!'; FLUSH PRIVILEGES;
# 執行安全向導 mysql_secure_installation # 依次:修改 root 密碼、移除匿名用戶、禁止 root 遠程登入、移除 test 庫、重新載入權限表
[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=1 max_connections=500 character-set-server=utf8mb4 collation-server=utf8mb4_general_ci skip-name-resolve [client] default-character-set=utf8mb4 socket=/var/lib/mysql/mysql.sock
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT service iptables save service iptables restart