本文詳細記錄了在 CentOS 7.1 系統上,通過官方 RPM 包安裝 MySQL 5.7.9 的完整流程,包含移除系統自帶 MariaDB、下載解壓、依賴順序安裝、初始化數據庫、修改 root 密碼及遠程授權等關鍵步驟,並補充了密碼過期策略的應對方案。
CentOS 7 預裝了 MariaDB,與 MySQL 存在檔案衝突,必須先卸載其核心庫:
[root@localhost ~]# rpm -qa | grep mariadb mariadb-libs-5.5.41-2.el7_0.x86_64 [root@localhost ~]# rpm -e mariadb-libs-5.5.41-2.el7_0.x86_64 --nodeps
使用 --nodeps 強制忽略依賴關係,避免連帶刪除其他系統套件。
從 MySQL 官網下載 mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar,上傳至伺服器並解壓:
tar -xvf mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar

解壓後會得到多個 RPM,安裝 Server 端僅需以下四個,務必按順序執行:
rpm -ivh mysql-community-common-5.7.9-1.el7.x86_64.rpm \ mysql-community-libs-5.7.9-1.el7.x86_64.rpm \ mysql-community-client-5.7.9-1.el7.x86_64.rpm \ mysql-community-server-5.7.9-1.el7.x86_64.rpm
MySQL 5.7 引入了新的初始化方式,推薦使用 mysqld --initialize:
# 方式一(舊版相容,會在 ~/.mysql_secret 生成密碼) mysql_install_db --datadir=/var/lib/mysql # 方式二(5.7 推薦,隨機密碼寫入 /var/log/mysqld.log) mysqld --initialize
注意:必須指定 --datadir,否則會因權限問題失敗。
chown mysql:mysql /var/lib/mysql -R systemctl start mysqld.service
從 /var/log/mysqld.log 中提取隨機密碼(如 ')j#)=uRig4yJ),登錄後 必須先修改密碼才能執行其他命令:
mysql -uroot -p')j#)=uRig4yJ' mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!'; mysql> FLUSH PRIVILEGES;
CREATE USER 'root'@'192.168.100.2' IDENTIFIED BY 'RemotePass123!'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.2' WITH GRANT OPTION; FLUSH PRIVILEGES;
MySQL 5.7 的 mysql.user 表中已移除 Password 欄位,加密密碼統一存放在 authentication_string 欄位,腳本遷移時請注意。
若登錄後提示 You must reset your password using ALTER USER,請依序執行:
SET PASSWORD = PASSWORD('your_new_password');ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;FLUSH PRIVILEGES;退出重新登錄即可正常使用新密碼。
CentOS 7 採用 systemd 替代傳統 SysVinit,服務腳本存放於 /usr/lib/systemd/system/。以 Node.js 專案配合 forever 實現開機自啟為例:
[Unit] Description=xiyoulibapi After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/node.js/pid ExecStart=/usr/local/bin/forever start /node.js/xiyoulib/bin/www ExecReload=/usr/local/bin/forever restart /node.js/xiyoulib/bin/www ExecStop=/usr/local/bin/forever stop /node.js/xiyoulib/bin/www PrivateTmp=true [Install] WantedBy=multi-user.target
Type=forking 表示後台運行;所有路徑必須為絕對路徑WantedBy=multi-user.target 實現多用戶級開機自啟存檔為 xiyoulibapi.service,權限 754 放入 /usr/lib/systemd/system/,然後:
systemctl start xiyoulibapi # 測試啟動 systemctl enable xiyoulibapi # 設定開機自啟
systemd 雖然語法陌生,但比傳統 init.d 腳本更簡潔、並行啟動效率更高,值得深入掌握。