版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chl191623691/article/details/79455736
由于 我们正式服务器上面mysql的root账户设置的只允许localhost登录mysql, 但是备份是在我自己的开发的电脑上,就造成了 普通用户使用mysqldump命令无法备份sql 会报错,
Got error: 1449: The user specified as a definer ('root'@'%') does not exist when using LOCK TABLES.
怎么解决呢?总不能吧root账户的host设置成% 所有ip都可以链接到mysql吧,这样未免是 舍弃了 安全,用下面的方法可以解决!
解决一:
在mysqldump 命令后面加上--skip-lock-tables选项即可。即:
mysqldump --opt --host=139.**.**.106 --default-character-set=utf8 -u HONGLINCHEN --password=1234 --skip-lock-tables gmfserver>"D:\mysqlbackup\backup_gmfserver_%YMD%.sql"
解决2:
使用具有lock权限的用户进行备份。 或者 你把备份的批处理放在阿里云服务器上 然后用root账户去备份
例如吧这个命令拿到正式服执行mysqldump --opt --host=localhost --default-character-set=utf8 -u root --password=1234 gmfserver>"D:\mysqlbackup\backup_gmfserver_%YMD%.sql"