1、备份报错mysqldump: Got error: 1449: The user specified as a definer ('xxx'@'%') does not exist
when using LOCK TABLES
主要原因是当时创建 view 、procedure 或者trigger使用的用户发生了变化(修改或删除),通过可视化查看 information_schema.VIEWS 表格中 查看Deafiner 一栏
解决思路1:备份时不锁表,增加参数--single_transaction
解决思路2:修改view 、procedure 或者trigger的definer 为数据库中有权限的用户
select
concat(
"alter definer=`root`@`%` view "
, table_name,
" as "
, view_definition,
";"
)
from
information_schema.views
where
table_schema=
'<你的数据库名>'
;