common_schema 上的 mysqldump 錯誤
我試圖在 Server version: 中備份 common_schema
5.5.44 MySQL Community Server (GPL)
。mysqldump -u root -p common_schema > common_schema_bkup.sql
我收到以下錯誤:
“mysqldump:出現錯誤:1356:查看’common_schema._bare_grantee_grants’引用無效的表或列或函式或視圖的定義者/呼叫者在使用鎖定表時缺乏使用它們的權限”
我該如何糾正這個問題?
也許你應該使用–single-transaction
mysqldump --single-transaction -u root -p common_schema > common_schema_bkup.sql
為什麼 ?根據 mysqldump 上的 MySQL 文件,您需要以下權限:
mysqldump 至少需要轉儲表的 SELECT 權限,轉儲視圖的 SHOW VIEW 權限,轉儲觸發器的 TRIGGER 權限,如果**不使用****該
--single-transaction
**選項,則需要 LOCK TABLES 。如選項描述中所述,某些選項可能需要其他權限。要重新載入轉儲文件,您必須具有通過手動發出 CREATE 語句來創建每個轉儲對象所需的相同權限。
請注意common_schema 由一張表和 27 個視圖組成。您必須獲得必要的授權才能轉儲它們,無論您是否使用–single-transaction轉儲。這可能包括擁有
CREATE VIEW
和SHOW VIEW
授予。更新 2015-07-24 23:09 EST
我認為問題在於 mysqldump 本身。許多元命令是圍繞定義的轉儲編寫的,這些定義可能會干擾可以邏輯表示的渲染輸出。在某些情況下,common_schema 的 mysqldump 無法重新導入。
您最好的機會是從頭開始導入 common_schema。就在 common_schema 文件中,它在故障排除安裝中說:
由於安裝只是一個導入操作,因此只有在模式生成無法在您的伺服器上執行時才會出現麻煩。
- 您是否在 5.0 MySQL 伺服器上執行?不支持此版本。
- 安裝過程中是否報錯?
- common_schema 在安裝過程中的最後一條消息是什麼?
- SELECT * FROM common_schema.status 的輸出是什麼?
由於唯一元數據不在 common_schema 中,因此您應該能夠重新導入它,而不是冒險使用 mysqldump 進行備份,而可能不會重新載入它。
由於某種原因,其中一個視圖失去了。您應該重新安裝 common_schema。或者您可能沒有所有適當的訪問權限 - 在這種情況下,只需檢查您的權限。