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