mysqldump: Got error: 1449: The user specified as a definer (‘XXX’@’XXX’) does not exist

1470215421408657.png

mysqldump备份数据时,出现如下报错:

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

经过仔细排查,发现数据库中有存储过程、函数或者视图的用户定义者在mysql中不存在。

出现问题的原因:

没有专职的DBA对数据库的管理,开发对数据库变更混乱,没有好的数据库变更规范导致。

解决方案有如下三种:

  1. 修改存储过程、函数或者视图的定义着,修改为数据库中存在的用户。

  2. 备份时添加-x参数。

  3. 在数据库中添加不存在的定义着用户。


Comments are closed.