相关疑难解决方法(0)

在许多视图上修改 DEFINER

我在更新后备份我的数据库时遇到问题。我一直在我的系统上四处寻找,试图找出原因。我运行的一个查询返回了这个结果。

Got error: 1449: The user specified as a definer ('cittool'@'%') does not exist when using LOCK TABLES
Run Code Online (Sandbox Code Playgroud)

经过一些调查,这些视图的定义者似乎是一个已从系统中清除的旧开发者帐户。有这个问题的数据库和视图很少使用,并且大多数被保留用于存档目的。

大约有 40 个视图带有不再存在的定义器。有没有一种简单的方法可以一次性将定义者更改为不同的帐户?有没有办法让 mysqldump 简单地将所有视图转储到一个文件中,以便我可以编辑该文件并重新创建视图?

mysql view

29
推荐指数
2
解决办法
6万
查看次数

为什么 mysqldump 返回错误 1143:无法执行 'show table status like

我运行以下命令来创建一个 mysqldump

mysqldump -ubackup -psomething --single-transaction --quick somedatabase | gzip > 4_19.gz
Run Code Online (Sandbox Code Playgroud)

在创建转储的 60%(估计 zip 文件的检查大小)后,我收到以下错误:

mysqldump: Couldn't execute 'show table status like 'customer\_cohort\_paid'': SELECT command denied to user ''@'%' for column 'customer_id' in table 'sales_order' (1143)
Run Code Online (Sandbox Code Playgroud)

它谈到了一个空白用户的权限问题user ''@'%'。此外,grants对于backup用户如下:

mysql> show grants for 'backup'@'%';
+------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for backup@%                                                                                                                            |
+------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON *.* TO 'backup'@'%' IDENTIFIED BY PASSWORD '*SOMETHING' |
+------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set …
Run Code Online (Sandbox Code Playgroud)

mysql mysqldump backup mysql-5.5

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

mysql ×2

backup ×1

mysql-5.5 ×1

mysqldump ×1

view ×1