我有一个使用mysqlump从AWS RDS MariaDB导出数据的进程,该进程多年来一直在ConCourse上的停靠器映像中成功运行.

从两天前的晚上开始,该过程开始失败,出现以下错误:

mysqldump: Couldn't execute 'FLUSH TABLES WITH READ LOCK': Access denied for user 'admin'@'%' (using password: YES) (1045)

official AWS explanation似乎是因为它们不允许主用户拥有超级特权或全局读锁定,所以如果设置了--master-data选项,mysqlump就会失败.

我没有设置该选项.我带着这些旗帜参选:

mysqldump -h ${SOURCE_DB_HOST} ${SOURCE_CREDENTIALS} ${SOURCE_DB_NAME} --single-transaction --compress | grep -v '^SET .*;$' > /tmp/dump.sql

在我本地的Mac上执行时,mysqlump运行良好.它会失败,并显示错误:它无法在Linux环境中执行只具有读锁定的刷新表.

我的问题是,有谁知道如何在Linux上使用mysqlump中的读锁定命令禁用刷新表?

编辑:很高兴接受下面@Sergey-Payu的回答,因为它已经解决了我的问题,但这里有一个指向MySQL错误报告的链接,供遇到这个问题的其他人使用https://bugs.mysql.com/bug.php?id=109685

推荐答案

几天前,我也遇到了同样的问题.我的mysqlump脚本多年来一直运行得很好,直到它开始给我Access denied; you need (at least one of) the RELOAD privilege(s) for this operation错误.我的第一react 是授予这一特权.但在那之后,我开始得到Access denied for user 'user'@'%' (using password: YES) (1045)个错误,也就是documented in AWS docs个.经过几个小时的调查,它被证明是MySQL最新的5.7.41版本的错误(它是在1月17日发布的,正好是我们开始收到错误的时候).降级至5.7.40解决了问题.有趣的是,5.7.41 changelog没有列出任何与具有读锁定或缺省值的刷新表相近的内容.

Linux相关问答推荐

GO:当使用NewManager调用创建cgroup时,权限被拒绝

AddressSaniizer随机抛出没有任何解释的SIGSEGV

OpenCV编译错误&未定义的引用&Quot;

列出Linux上特定目录和子目录名称的bash命令

在不影响ROS2安装的情况下更新Ubuntu Linux中的CMake

删除第二列中数字为零的行

如果在两种模式之间找到文本,则使用sed删除它们之间的所有行

如何创建一堆文件中所有单词的列表?

无法放弃所有权限,但可以放弃 CAP_SETUID 权限.

inotifywait 可以说文件在另一个进程可以访问之前已关闭吗?

matlab中linux和windows上regexp()的不同行为

如何在linux中将2个不同大小的图像(边框,实际图像)合并为1个

`std::cout` 是如何实现的?

使用带有 gnome-keyring 的 Git 凭证助手作为 Sudo 时出错

如何使用该位置的相对路径在单个位置创建多个文件夹?

linux远程执行命令

对一行的最后一个字段进行排序

pthread_exit 与返回

ctrl-x 在终端中使用时会发送哪个信号?

Windows 开发环境值得付出代价吗?