Mysql

common_schema 上的 mysqldump 錯誤

  • September 8, 2019

我試圖在 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 VIEWSHOW 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。或者您可能沒有所有適當的訪問權限 - 在這種情況下,只需檢查您的權限。

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