使用mysqldump 备份mysql数据库 报错1044 和 1045的原因及解决方法

1.错误1044

【错误信息】:mysqldump: Got error: 1044: Access denied for user 'root'@'%' to database 'hhh' when using LOCK TABLES

【报错原因】:mysqldump 命令执行时,需要四种权限,分别是:select,show view,trigger,lock table。但是因为没有lock table的权限,导致上述错误发生。

【修改方法】在mysqldump命令之后添加--single-transaction 即可。

--single-transaction参数的作用,设置事务的隔离级别为可重复读,即REPEATABLE READ,这样能保证在一个事务中所有相同的查询读取到同样的数据,也就大概保证了在dump期间,如果其他innodb引擎的线程修改了表的数据并提交,对该dump线程的数据并无影响,在这期间不会锁表。

示例:

mysqldump --single-transaction -hIP地址 -p3306 -uroot -p密码 数据库名>D:/hhh.sql

2.错误1045

错误信息:mysqldump: Got error: 1045: Access denied for user 'ucloudbackup'@'10.10.1.242' (using password: YES) when trying to connect
报错条件:无法连接,密码,账户,host,port有问题,通常是密码未加双引号
解决措施:先保证mysql能正常连接

示例:mysqldump -uroot -p"test@2018" --all-databases > D:\backup\db_test\db_test_%d%.sql

 

posted @ 2020-06-01 15:29  dirgo  阅读(6940)  评论(1编辑  收藏  举报