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

CentOS 升級 MySQL 5.7 完整實戰:備份、卸載舊版、RPM 安裝、數據目錄遷移、密碼重置與自啟動配置

     編輯:MySQL 綜合教學

CentOS 升級 MySQL 5.7 完整實戰:備份、卸載舊版、RPM 安裝、數據目錄遷移、密碼重置與自啟動配置

一、升級前準備

  1. 全量備份(含事件):
    mysqldump -u root -p -E --all-databases > /home/db-backup.sql
  2. 備份配置:
    cp /etc/my.cnf /home/my.cnf
  3. 停止服務:
    service mysqld stop

二、卸載舊版 MySQL(5.1 示例)

yum remove mysql mysql-server mysql-devel mysql-embedded-devel mysql-libs mysql-embedded

依賴關係會自動處理,確認刪除 4~6 個套件。

三、下載 MySQL 5.7 RPM 包

  1. 確認系統位數:getconf LONG_BIT / getconf WORD_BIT(均為 32 → 下載 i686)
  2. 官網 下載頁 選 Red Hat Enterprise Linux 對應版本
  3. 核心四包(社區版):
    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-common-5.7.10-1.el6.i686.rpm
    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-libs-5.7.10-1.el6.i686.rpm
    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-client-5.7.10-1.el6.i686.rpm
    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-community-server-5.7.10-1.el6.i686.rpm

四、安裝依賴與 RPM 包

yum install -y libnuma*
rpm -ivh mysql-community-common-5.7.10-1.el6.i686.rpm
rpm -ivh mysql-community-libs-5.7.10-1.el6.i686.rpm
rpm -ivh mysql-community-client-5.7.10-1.el6.i686.rpm
rpm -ivh mysql-community-server-5.7.10-1.el6.i686.rpm

驗證:

yum list installed | grep ^mysql
mysql --version
# mysql  Ver 14.14 Distrib 5.7.10, for Linux (i686)

五、數據目錄遷移關鍵步驟(避免 5.1 系統表衝突)

  1. 修改 /etc/my.cnf 指向新目錄:
    [mysqld]
    datadir=/var/lib/mysql5.7
    socket=/var/lib/mysql5.7/mysql.sock
    
    [client]
    socket=/var/lib/mysql5.7/mysql.sock
  2. 同步修改啟動腳本 /etc/init.d/mysqld 第 47 行:
    get_mysql_option mysqld datadir "/var/lib/mysql5.7"
  3. 初始化系統表(新目錄為空):
    mysqld --initialize
    # 輸出臨時 root 密碼,如:sfW2h2*Y55IS
  4. 權限修正:
    chown -R mysql:mysql /var/lib/mysql5.7
    chmod -R 770 /var/lib/mysql5.7

六、啟動驗證與密碼重置

  1. service mysqld start → 正常啟動,netstat -ano | grep 3306 監聽成功
  2. 登入失敗(隨機密碼),進入安全模式重置:
    service mysqld stop
    mysqld_safe --skip-grant-tables &  # 後台運行
    mysql -u root  # 免密進入
    USE mysql;
    UPDATE user SET authentication_string=PASSWORD('123456') WHERE User='root';
    FLUSH PRIVILEGES;
    EXIT;
  3. 殺掉安全模式進程,正常啟動驗證新密碼

七、配置開機自啟動

chkconfig --add mysqld
chkconfig --list mysqld
# mysqld  0:off 1:off 2:on 3:on 4:on 5:on 6:off

八、選擇性導入業務數據

根據需要從 /home/db-backup.sql 導入特定庫表,避免系統表衝突。

九、關鍵坑點總結

  • 5.1→5.7 系統表結構巨大差異:必須遷移 datadir 重新 --initialize,不可直接覆蓋舊目錄
  • secure_file_priv、explicit_defaults_for_timestamp 等新參數需關注
  • authentication_string 取代 Password 欄位,密碼重置語法變更
  • 啟動腳本 datadir 參數與 my.cnf 必須一致,否則 Socket 路徑錯誤
  • 安全模式下 mysqld_safe 需帶 --user=mysql 確保權限正確
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved