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'引用无效的表或列或函数或视图的定义者/调用者在使用锁定表时缺乏使用它们的权利”
我该如何纠正?
也许你应该使用--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 VIEW和SHOW VIEW补助金。
我认为问题在于 mysqldump 本身。许多元命令是围绕定义转储编写的,这些定义可能会干扰可以逻辑表示的渲染输出。在某些情况下,common_schema 的 mysqldump 无法重新导入。
你最好的机会是从头开始导入 common_schema 。就在 common_schema 文档中,它提到了安装故障排除:
由于安装只是一个导入行为,因此如果模式生成无法在您的服务器上执行,您应该会遇到麻烦。
- 您是否在 5.0 MySQL 服务器上执行?不支持该版本。
- 安装过程中是否报错?
- common_schema 在安装过程中的最后一条消息是什么?
- SELECT * FROM common_schema.status 的输出是什么?
由于唯一的元数据不在 common_schema 中,因此您应该能够重新导入它,而不是冒用 mysqldump 进行备份并可能无法重新加载它的风险。