common_schema 上的 mysqldump 错误

tes*_*747 6 mysql mysqldump backup mysql-5.5

我试图在服务器版本中备份 common_schema: 5.5.44 MySQL Community Server (GPL)

mysqldump -u root -p common_schema > common_schema_bkup.sql
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

“mysqldump:得到错误:1356:视图'common_schema._bare_grantee_grants'引用无效的表或列或函数或视图的定义者/调用者在使用锁定表时缺乏使用它们的权利”

我该如何纠正?

Rol*_*DBA 6

也许你应该使用--single-transaction

mysqldump --single-transaction -u root -p common_schema > common_schema_bkup.sql
Run Code Online (Sandbox Code Playgroud)

为什么 ?根据 mysqldump 上的 MySQL 文档,您需要以下权限:

mysqldump 至少需要转储表的 SELECT 权限、转储视图的 SHOW VIEW、转储触发器的 TRIGGER 权限以及 LOCK TABLES(如果--single-transaction未使用该选项)。某些选项可能需要其他权限,如选项说明中所述。

要重新加载转储文件,您必须具有通过手动发出 CREATE 语句来创建每个转储对象所需的相同权限。

请注意,common_schema 由一张表和 27 个视图组成。您必须拥有必要的授权才能转储它们,无论您是否使用--single-transaction转储。这可能包括获得CREATE VIEWSHOW VIEW补助金。

更新时间 2015-07-24 23:09 美国东部时间

我认为问题在于 mysqldump 本身。许多元命令是围绕定义转储编写的,这些定义可能会干扰可以逻辑表示的渲染输出。在某些情况下,common_schema 的 mysqldump 无法重新导入

你最好的机会是从头开始导入 common_schema 。就在 common_schema 文档中,它提到了安装故障排除

由于安装只是一个导入行为,因此如果模式生成无法在您的服务器上执行,您应该会遇到麻烦。

  • 您是否在 5.0 MySQL 服务器上执行?不支持该版本。
  • 安装过程中是否报错?
  • common_schema 在安装过程中的最后一条消息是什么?
  • SELECT * FROM common_schema.status 的输出是什么?

由于唯一的元数据不在 common_schema 中,因此您应该能够重新导入它,而不是冒用 mysqldump 进行备份并可能无法重新加载它的风险。