Mysql

Windows 上的 MySQL 升級

  • January 29, 2022

我在 Windows 盒子上安裝了 MySQL 5.1。現在我想升級到最新的 MySQL 5.6 版本。

我打算將 MySQL 5.6 安裝在具有相同埠 3306 的同一台伺服器上。安裝後,我會將新的安裝數據目錄映射到 MySQL 5.1 使用的舊數據目錄。

在此之後,我將使用mysql_upgrade.exe.

這個計劃會成功嗎?也讓我知道是否需要注意任何預防措施。

編輯:這是生產伺服器,數據庫大小為 100 GB,因此我們無法使用耗時的備份和恢復機制。

實際上,這個計劃對mysql模式來說有點危險。為什麼 ?

您正在升級兩個版本。mysql_upgrade 不會對此做出很好的反應。我有一個文章有人升級但沒有解決mysql.user從 MySQL 5.1.73 升級到 5.6.21 的任何已知問題?

我有關於如何一次升級兩個版本的舊文章

這是關於如何使用純 SQL 移動授權的附加文章:Upgradeing mysql myisam 5.1 to mysql 5.6: force innodb on restore?. 那篇文章是基於 Linux 的。

要在 Windows 中執行此操作,請執行以下步驟

步驟 01:執行這個

set MYSQL_USER=root
set MYSQL_PASS=rootpassword
set MYSQL_CONN=-u%MYSQL% -p%MYSQL_PASS%
set SQLSTMT="SELECT CONCAT('SHOW GRANTS FOR ',QUOTE(user),'@',QUOTE(host),';')
set SQLSTMT=%SQLSTMT% FROM mysql.user WHERE user<>''"
mysql %MYSQL_CONN% -ANe%SQLSTMT% > GetGrants.sql
echo "SET sql_log_bin = 0;" > MySQLUserGrants.sql
mysql %MYSQL_CONN% -AN < GetGrants.sql >> MySQLUserGrants.sql

STEP 02 : 在每一行附加一個分號MySQLUserGrants.sql

步驟 03:載入MySQLUserGrants.sql到 MySQL 5.6 設置

您可以通過以下步驟實現這一點

  • 在最新版本的某個新埠上安裝新實例。
  • 交換配置文件中的數據目錄和交換埠。
  • 執行mysql升級。
  • 驗證新安裝。

為了更安全,您可以進行舊數據庫備份(活動前的文件夾副本或 mysqldump 或 mysqlenterprisebackup 等)

希望能幫助到你

引用自:https://dba.stackexchange.com/questions/104312