首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

CentOS 7 下 MySQL 5.7.9 RPM 包安裝完整指南

     編輯:MySQL 綜合教學

CentOS 7 下 MySQL 5.7.9 RPM 包安裝完整指南

本文詳細記錄了在 CentOS 7.1 系統上,通過官方 RPM 包安裝 MySQL 5.7.9 的完整流程,包含移除系統自帶 MariaDB、下載解壓、依賴順序安裝、初始化數據庫、修改 root 密碼及遠程授權等關鍵步驟,並補充了密碼過期策略的應對方案。

環境準備

步驟 1:移除系統預裝的 MariaDB

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 強制忽略依賴關係,避免連帶刪除其他系統套件。

步驟 2:下載並解壓官方 RPM Bundle 包

從 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 檔案列表

步驟 3:按依賴順序安裝核心四個包

解壓後會得到多個 RPM,安裝 Server 端僅需以下四個,務必按順序執行:

  1. mysql-community-common-5.7.9-1.el7.x86_64.rpm(基礎公共檔案)
  2. mysql-community-libs-5.7.9-1.el7.x86_64.rpm(依賴 common)
  3. mysql-community-client-5.7.9-1.el7.x86_64.rpm(依賴 libs)
  4. mysql-community-server-5.7.9-1.el7.x86_64.rpm(依賴 client、common)
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

步驟 4:初始化數據目錄並生成臨時密碼

MySQL 5.7 引入了新的初始化方式,推薦使用 mysqld --initialize:

# 方式一(舊版相容,會在 ~/.mysql_secret 生成密碼)
mysql_install_db --datadir=/var/lib/mysql

# 方式二(5.7 推薦,隨機密碼寫入 /var/log/mysqld.log)
mysqld --initialize

注意:必須指定 --datadir,否則會因權限問題失敗。

步驟 5:調整目錄權限並啟動服務

chown mysql:mysql /var/lib/mysql -R
systemctl start mysqld.service

步驟 6:首次登錄並修改 root 密碼

從 /var/log/mysqld.log 中提取隨機密碼(如 ')j#)=uRig4yJ),登錄後 必須先修改密碼才能執行其他命令:

mysql -uroot -p')j#)=uRig4yJ'
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
mysql> FLUSH PRIVILEGES;

步驟 7:創建遠程訪問用戶與授權

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;

關鍵變更提醒:authentication_string 取代 Password 欄位

MySQL 5.7 的 mysql.user 表中已移除 Password 欄位,加密密碼統一存放在 authentication_string 欄位,腳本遷移時請注意。

補充:解決「密碼過期」導致無法執行命令的問題

若登錄後提示 You must reset your password using ALTER USER,請依序執行:

  1. SET PASSWORD = PASSWORD('your_new_password');
  2. ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
  3. FLUSH PRIVILEGES;

退出重新登錄即可正常使用新密碼。

附錄:CentOS 7 systemd 服務管理快速入門

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
  • [Unit]:描述與依賴關係
  • [Service]:Type=forking 表示後台運行;所有路徑必須為絕對路徑
  • [Install]:WantedBy=multi-user.target 實現多用戶級開機自啟

存檔為 xiyoulibapi.service,權限 754 放入 /usr/lib/systemd/system/,然後:

systemctl start xiyoulibapi      # 測試啟動
systemctl enable xiyoulibapi     # 設定開機自啟

systemd 雖然語法陌生,但比傳統 init.d 腳本更簡潔、並行啟動效率更高,值得深入掌握。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved