原本用 mysqldump 备份 MySQL 一直没有问题, 但近日在一台新主机上用 mysqldump 备份所有资库时, 出现以下错误:
mysqldump: Got error: 1044: Access denied for user ‘root’@’localhost’ to database ‘information_schema’ when using LOCK TABLES
我也肯定输入的 MySQL 密码没有问题, 因为已经将登入资储存, 而且其他数据库也可以成功汇出, 解决方法有以下两个:
1. 加入 –-single-transaction 参数
只要在执行 mysqldump 时加入 -–single-transaction 参数, 便不会出现错误, 例如:
|
1 |
$ mysqldump --single-transaction -u root -p db_name > mysql-backup.sql |
这样便不会报错.
2. 加入 LOCK TABLES 权限:
先连接到 MySQL:
$ mysql -u root -p
输入以下指令:
|
1 |
mysql> GRANT SELECT,LOCK TABLES ON db_name.* TO 'username'@'localhost'; |