mysql下普通用户备份数据库时无lock tables权限的解决方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 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"

猜你喜欢

转载自blog.csdn.net/chl191623691/article/details/79455736