mysql 导出全库的时候
/xxxx/xxxx/mysqldump -uxxx -pxxx --all-databases> /xxx/sqlbak/mysql-all-databases-xxx.sql
的时候报错了
提示
mysqldump: Got error: 1449: The user specified as a definer ('qyzc'@'%') does not exist when using LOCK TABLES
可是我数据库根本没有 qyzc这个用户啊。(SELECT User, Host, Password FROM mysql.user;)
参考:https://www.cnblogs.com/martinding/p/7457701.html
原来是从其他库复制过来的时候,可能带上了用户的信息。
查询select * FROM information_schema.views 果然看到有个视图的definer 是qyzc@%
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 三个改为自己实际的值。生成更新语句。执行。ok。