mysqldump: Got error: 1044: Access denied for user XXXX when doing LOCK TABLES

一、报错信息

在使用mysqldump 执行远程备份数据库的时候报如下错误:

mysqldump: Got error: 1044: Access denied for user XXXX when doing LOCK TABLES

很明显此问题,是由于用户没有权限。可以登录mysql服务查询用户的权限。

SHOW GRANTS [FOR user]

二、报错原因

查看下mysql官方手册有如下描述:

mysqldump requires at least the SELECT privilege for dumped tables, SHOW VIEW for dumped views, TRIGGER for dumped triggers, LOCK TABLES if the --single-transaction option is not used, and (as of MySQL 5.7.31) PROCESS if the --no-tablespaces option is not used. Certain options might require other privileges as noted in the option descriptions.

三、解决方式

1、分配权限

可以使用 GRANT 命令分配 LOCK TABLES 权限,如下所示:

GRANT LOCK TABLES ON `db_name`.* TO 'user'@'%';

2、跳过锁表

mysqldump 命令时添加 --skip-lock-tables 跳过锁表。如下所示:

mysqldump -h host_name -uuser -ppassword --databases db_name --tables table_name> F:\dump.sql
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值