码迷,mamicode.com
首页 > 数据库 > 详细

Mysqldump 1449 错误解决 mysqldump: Got error: 1449

时间:2017-08-31 16:12:41      阅读:283      评论:0      收藏:0      [点我收藏+]

标签:roo   可视化查看   -name   src   word   pretty   err   数据库   一个   

备份数据库

$ 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, ";") 
FROM information_schema.views 
WHERE table_schema=your-database-name;

 

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

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

修改成比如说 root%localhost

如果是一个procedure 修改 deafiner

 

UPDATE `mysql`.`proc` p SET  = user@% WHERE definer=root@%

 

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

 

2. 增加一个definer

错误: The user specified as a definer (‘root‘@‘%‘) does not exist
执行:
GRANT ALL ON *.* TO someuser@% IDENTIFIED BY complex-password;
FLUSH PRIVILEGES;

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

 

Mysqldump 1449 错误解决 mysqldump: Got error: 1449

标签:roo   可视化查看   -name   src   word   pretty   err   数据库   一个   

原文地址:http://www.cnblogs.com/martinding/p/7457701.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!