200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > mysql dump 1449_Mysqldump 1449 错误解决 mysqldump: Got error: 1449

mysql dump 1449_Mysqldump 1449 错误解决 mysqldump: Got error: 1449

时间:2023-04-14 17:11:30

相关推荐

mysql dump 1449_Mysqldump 1449 错误解决  mysqldump: Got error: 1449

备份数据库

$ mysqldump -uroot -p db > backup/db.sql

上面的terminal 执行

出现了下面的错误

mysqldump: Got error: 1449: The user specified as a definer (‘someuser‘@‘%‘) does not exist when using LOCK TABLES

问题解决:

原因:

主要原因是当时创建 view procedure 或者trigger使用的user 已经被删除了 这个问题最常见的是数据库迁移之后

我的问题是我db里面一个view 的创建者没有了

可以可视化查看mysql information_scheme 表格中查看 Deafiner

没修改之前是另外一个 deafiner

解决方法:

1. 修改definer 下面是生成修改

SELECT CONCAT("ALTER DEFINER=`youruser`@`host` VIEW",

table_name, "AS", view_definition, ";")FROMinformation_schema.viewsWHERE table_schema=‘your-database-name‘;

修改 `youruser`@`host` 变成你的 ‘your-database-name‘ 变成你的db

就会生成一个alter 语句 可视化编辑也可以

修改成比如说 root%localhost

如果是一个procedure 修改 deafiner

UPDATE `mysql`.`proc` p SET = ‘‘ WHERE definer=‘‘

具体的也可以先查看proc 表 然后再修改

2. 增加一个definer

错误: The user specified as a definer (‘root‘@‘%‘) does not exist

执行:

GRANT ALL ON *.* TO ‘someuser‘@‘%‘ IDENTIFIED BY ‘complex-password‘;

FLUSHPRIVILEGES;

上面有两处需要修改成你自己的 一个 ‘someuser‘@‘%‘ 还有一处 ‘complex-password‘ 改成你的密码

原文:/martinding/p/7457701.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。