我尝试用pt-online-schema-change向RDS DB表的2列添加唯一索引,但它失败了,错误如下:
DBD::mysql::db do failed: Access denied; you need (at least one of) the SUPER privilege(s) for this operation [for Statement "SET SQL_LOG_BIN=0"] at /usr/bin/pt-online-schema-change line 4663.但是使用oak-online-alter-table,,我的表正在改变。该过程未完成,但我没有看到任何错误,输出如下:
...
-- Copying range (1230004), (1231683), progress: 24%这些工具是否实现了更改表的不同方法?
发布于 2012-02-16 16:10:00
在这种情况下没有什么好担心的。
根据关于超级特权的MySQL文档
“超级特权”使帐户能够使用“更改母版”、“杀死”或“mysqladmin杀死”来杀死属于其他帐户的线程(您始终可以杀死自己的线程)、清除二进制日志、使用SET全局修改全局系统变量的配置更改、mysqladmin调试命令、启用或禁用日志记录、执行更新,即使启用了read_only系统变量、启动和停止从服务器上的复制、存储程序和视图的定义器属性中的任何帐户的规范,以及使您能够连接(一次),即使达到了max_connections系统变量控制的连接限制。 若要创建或更改存储函数(如果启用了二进制日志记录),您还可能需要超级权限,如第18.7节“存储程序的二进制日志记录”中所述。
禁用DB会话中语句的二进制日志记录需要超级权限。
事实上,根据关于pt-online-schema-change的文档
-箱-日志 允许二进制日志记录(设置SQL_LOG_BIN=1)。默认情况下,将关闭二进制日志记录,因为在大多数情况下,不需要复制--tmp-表。此外,在复制环境中执行联机架构更改需要仔细规划,否则复制可能会中断;请参阅“复制”。
由此,您可以得出这样的结论:这确实是pt-online模式更改的正常行为。默认情况下,它试图在会话中禁用二进制日志记录。
Recommendation
尝试将pt-online-schema-change作为root@localhost运行。该用户应该是主动的。
https://stackoverflow.com/questions/9187097
复制相似问题