mysqldump: Got error: 1044: "Access denied for user 'root'@'localhost' to database 'information_schema'" when using LOCK TABLES
原图:
以上报错目前尝试两种解决方法可行(注:如果有其它解决办法可以在评论区说明后续我会补充):
方法一:
#--lock-tables 默认会锁住所有需要dump的表,来保证数据的一致性#--skip-lock-tables 跳过当前库中的锁,此方法在数据量小时可取,量大可能会造成卡死[root@Zabbix ~]# mysqldump --skip-lock-tables -uroot -padmin@123 information_schema > /home/databases/information_schema
方法二:
[root@Zabbix ~]# mysql -uroot -padmin@123 #给root授锁定表的权限MariaDB [(none)]> grant select,lock tables on *.* to 'root'@'localhost';Query OK, 0 rows affected (0.001 sec)MariaDB [(none)]> flush privileges;Query OK, 0 rows affected (0.000 sec)#--single-transaction #设置事务的隔离级别为可重复读,即REPEATABLE READ,这样能保证在一个事务中所有相同的查询读取到同样的数据,也就大概保证了在dump期间,如果其他innodb引擎的线程修改了表的数据并提交,对该dump线程的数据并无影响,在这期间不会锁表。该参数通过在一个事务中导出所有表从而创建一个一致性的快照。[root@Zabbix ~]# mysqldump --single-transaction -uroot -padmin@123 information_schema > /home/databases/information_schema
来源地址:https://blog.csdn.net/yeyslspi59/article/details/128820568