問題陳述

問題陳述

問題陳述

mysqldump --add-drop-database --all-database 建立一個包含以下內容的轉儲

....
/*!40000 DROP DATABASE IF EXISTS `mysql`*/;
....

這是預期的,而且我相信這是正確的行為。

然而,如果將此轉儲放入 mysql 伺服器,即cat dump | mysql -u root -pxxxx (該帳戶具有 SUPER),它會抱怨ERROR 3552 (HY000) at line 30: Access to system schema 'mysql' is rejected.

問題

有什麼方法可以讓它工作,而無需手動編輯轉儲。或者 sed/grep 刪除有問題的行是我唯一的選擇?

這曾經在 MySQL 5.6 中工作(即它接受刪除 mysql 資料庫)

root帳號具有以下權限SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE, BACKUP_ADMIN, RESOURCE_GROUP_ADMIN, XA_RECOVER_ADMIN

伺服器和客戶端:MySQL 8.0.12

答案1

我認為沒有必要轉儲/恢復mysql資料庫模式。

mysql如果您想要一種跳過資料庫(或您想要的任何其他資料庫)的自動化方法想要轉儲)而不指定每個資料庫,請檢查答案這個問題一個簡單的腳本可以自動取得您想要忽略的資料庫之外的所有資料庫。

相關內容