Mysql
將 mysql.user 表從 MySQL 5.5 遷移到 MySQL 5.6
我有一個棘手的問題。
- 我正在從 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 實例中執行它。您可以執行以下操作之一:
- 使用pt-show-grants將授權提取為 SQL 。
- 執行我對pt-show-grants 的個人模擬:
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.user
(MySQL 服務在嘗試授予使用者權限後停止)。僅在其他一切都失敗時嘗試此操作…