解决mysqldump: Got error: 1044: Access denied for user的方法 - 忆未来

解决mysqldump: Got error: 1044: Access denied for user的方法

今天在使用mysqldump备份数据时提示Got error: 1044: Access denied for user ... when using LOCK TABLES问题了,但经过反复测试找出来解决办法,下面与各位同学分享分享。

今天给新加的几个数据库备份,在执行mysqldump的时候,居然报mysqldump: Got error: 1044: Access denied for user 'jpzen'@'localhost' to database 'information_schema' when using LOCK TABLES,网上一搜,觉得有可能是权限问题,马上查看mysql里操作记录,执行tail -n 40000 .mysql_history|grep GRANT,发现只给SELECT,INSERT,UPDATE,DELETE这几个权限,为了在不改动权限的情况下,那只能用下面的方法.

那可能是你用来备份的数据库用户没有lock table的权限,可以换一个权限更高的用户,或者使用mysqldump的另一个选项:
--single-transaction

mysqldump -uyourusername -pyourpassword --single-transaction yourdb > yourdb.sql

解决一:

加上-skip-lock-tables选项即可。即:

[root@xok.la]# mysqldump -u dbuser -ppass db --skip-lock-tables > db.sql

解决2:

使用root账户备份。

ps:在导出时,加上--skip-lock-tables选项即可.

但这个方法在数据量过大的话,会出现卡死,所以最好经常检查下sql备份,避免在要使用备份的时候杯具
[转]http://www.111cn.net

标签: none

评论已关闭