Mysql

將 mysql.user 表從 MySQL 5.5 遷移到 MySQL 5.6

  • July 9, 2015

我有一個棘手的問題。

  • 我正在從 MySQL 5.5 遷移到 MySQL 5.6。
  • 我想將 MySQL 5.5 中的 45 個使用者遷移到 MySQL 5.6

問題

  • 我應該只轉儲 MySQL 5.5 使用者表並在 MySQL 5.6 上恢復嗎?
  • MySQL 5.6 使用者表的列比 MySQL 5.5 多,所以想知道這是否可行。
  • 還有什麼建議嗎?

您可以將 mysql 模式載入到 5.6 實例中並執行mysql_upgrade. 我想到了一個更簡潔的方法:您可以將授權從 MySQL 5.5 轉儲為純 SQL。實例,然後在 MySQL 5.6 實例中執行它。

您可以執行以下操作之一:

mysql -u… -p… –AN -e"SELECT CONCAT(‘SHOW GRANTS FOR ‘,QUOTE(user),’@’,QUOTE(host),’;’) FROM mysql.user WHERE user <>’’" | mysql -u… -p… –skip-column-names -AN | sed ’s/$/;/g’ > MySQLUserGrants.sql

一旦你從 5.5 創建腳本。實例,在 5.6 實例中執行腳本。

試一試 !!!

注意:我有一個文章幫助某人手動修復mysql.userMySQL 服務在嘗試授予使用者權限後停止)。僅在其他一切都失敗時嘗試此操作…

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