1. 程式人生 > >Linux MySQL 5.7二進位制 小版本升級

Linux MySQL 5.7二進位制 小版本升級

Linux MySQL 5.7二進位制 小版本升級

MySQL5.7二進位制安裝在Unix/Linux上升級時,分為就地和邏輯升級方法。

1 就地升級

就地升級包括關閉舊的MySQL伺服器,用新的MySQL伺服器替換舊的MySQL二進位制檔案或軟體包,在現有資料目錄上重新啟動MySQL,以及執行mysql_upgrade。

1.1 XA事務InnoDB

如果您使用XA事務InnoDB,請XA RECOVER在升級之前執行以檢查未提交的XA事務。如果返回結果,則通過發出XA COMMIT或 XA ROLLBACK宣告來提交或回滾XA事務。

1.2 配置MySQL以通過設定innodb_fast_shutdown為 執行慢速關閉 0。

mysql -u root -p --execute="SET GLOBAL innodb_fast_shutdown=0"

在關閉過程中,InnoDB執行完全清除並在關閉之前更改緩衝區合併,這可確保在釋出版本之間存在檔案格式差異時完全準備好資料檔案。

1.3 關閉舊的MySQL伺服器

mysqladmin -u root -p shutdown

1.4 安裝新的MySQL二進位制包

下載,解壓新的MySQL二進位制分發包;

授權:

chown -R mysql.mysql /usr/loacl/mysql_new

把MySQL的軟連線指向新的mysql服務

unlink /usr/loacl/mysql
ln -s /usr/loacl/mysql_new /usr/loacl/mysql

1.5 使用現有資料目錄啟動新MySQL 5.7伺服器

mysqld_safe --user=mysql --datadir=/path/to/existing-datadir

1.6 執行mysql_upgrade

mysql_upgrade -u root -p

mysql_upgrade檢查所有資料庫中的所有表是否與當前版本的MySQL不相容。mysql_upgrade還會升級mysql系統資料庫,以便您可以利用新的許可權或功能。

  • 注意
    mysql_upgrade不會升級幫助表的內容。

1.7 關閉並重新啟動MySQL伺服器以確保對系統表所做的任何更改都生效

mysqladmin -u root -p shutdown
mysqld_safe --user=mysql --datadir=/path/to/existing-datadir

2 邏輯升級

邏輯升級涉及使用備份或匯出實用程式(如mysqldump)從舊MySQL例項匯出SQL ,安裝新的MySQL伺服器以及將SQL應用於新的MySQL例項。
簡單說明邏輯升級就是匯出資料,然後升級,最後再匯入資料;安全性高,主要針對資料量不大的資料庫;常用的工具:mysqldump和Xtrabackup。

2.1 從以前的MySQL安裝中匯出現有資料:

mysqldump -u root -p
  --add-drop-table --routines --events
  --all-databases --force > data-for-upgrade.sql
  • 注意
    如果資料庫包含儲存的程式, 請使用--routines和 mysqldump的--events選項 (如上所示)。該 選項包括轉儲中的所有資料庫,包括儲存系統表的 資料庫。 --all-databasesmysql

  • 重要
    如果您有包含生成列的表,請使用MySQL 5.7.9或更高版本提供的mysqldump實用程式來建立轉儲檔案。早期版本中提供的 mysqldump實用程式對生成的列定義使用了錯誤的語法(Bug#20769542)。您可以使用該 INFORMATION_SCHEMA.COLUMNS 表來標識具有生成列的表。

2.2 關閉舊的MySQL伺服器

mysqladmin -u root -p shutdown

2.3 安裝MySQL 5.7

2.4 初始化新資料目錄

mysqld --initialize --datadir=/path/to/5.7-datadir

複製'root'@'localhost' 顯示在螢幕上的臨時密碼或寫入錯誤日誌以供日後使用。

2.5 使用新資料目錄啟動MySQL 5.7伺服器:

mysqld_safe --user=mysql --datadir=/path/to/5.7-datadir

2.6 重置root密碼:

shell> mysql -u root -p
Enter password: ****  <- enter temporary root password
mysql> ALTER USER USER() IDENTIFIED BY 'your new password';

2.7 將先前建立的轉儲檔案載入到新的MySQL伺服器中

mysql -u root -p --force < data-for-upgrade.sql
  • 注意
    gtid_mode=ON如果轉儲檔案包含系統表, 則不建議在伺服器()上啟用GTID時載入轉儲檔案。 mysqldump為使用非事務性MyISAM儲存引擎的系統表發出DML指令,並且在啟用GTID時不允許這種組合。另請注意,將啟用了GTID的伺服器中的轉儲檔案載入到啟用了GTID的另一臺伺服器中會導致生成不同的事務識別符號。

2.8 執行mysql_upgrade

mysql_upgrade -u root -p

mysql_upgrade檢查所有資料庫中的所有表是否與當前版本的MySQL不相容。mysql_upgrade還會升級mysql系統資料庫,以便您可以利用新的許可權或功能。

  • 注意
    mysql_upgrade不會升級幫助表的內容。

2.9 關閉並重新啟動MySQL伺服器以確保對系統表所做的任何更改都生效。

mysqladmin -u root -p shutdown
mysqld_safe --user=mysql --datadir=/path/to/5.7-datadir

官網:

https://dev.mysql.com/doc/refman/5.7/en/upgrading.html