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

Linux MySQL 5.7二進制 小版本升級

dev 服務器 Xtraback man lan mysql 內容 數據量 更改

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

參考:
mysql 5.7.21 二進制安裝

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

Linux MySQL 5.7二進制 小版本升級