我正在尝试使用mysqlbinlog客户端程序从远程服务器恢复二进制日志,但是mysqlbinlog似乎不识别建立SSL到MySQL Version5.5服务器所需的SSL选项,后者被设置为需要X509。
还有其他让mysqlbinlog连接的方法吗?
更新:我注意到来自MySQL:https://bugs.mysql.com/bug.php?id=74864的这个bug报告
我已经尝试过使用--loose前缀来连接3个SSL选项。还是不工作。
更新:我正在运行Google ( MySQL 5.5的托管版本,可能被谷歌调整,运行在Google中),除了使用MySQL客户端和通过Google仪表板来调整一些有限的参数外,没有其他访问权限。
事实上,对于Amazon (AWS)中的RDS来说,这也是同样的限制。不同之处在于RDS可以选择MySQL次要版本,而Google不允许您选择次要版本,只有5.5或5.6可用。
发布于 2015-07-31 20:13:41
1月21日16:44大卫莫斯感谢您的反馈。在5.7.3版本中修正了这一点,并将以下文本添加到5.7.3发行说明中:以前版本的mysqlbinlog没有正确地接受选项文件中的ssl选项。此修复确保此选项可以正确使用。在早期版本中,工作是使用松散的ssl选项。开发者发布的2月19日16:08 David :在发布说明中已经提到了这一点。关门了。2月27日9:02 Christoph也会为5.6.X版本修复这个问题吗?
--ssl-crl和--ssl-crlpath变量是首次在mysqlbinlog中引入MySQL 5.6.3。一旦MySQL 5.6使用GA,这些选项根本就不会被使用。我怎么知道的?查看未定义 (表4.16)。它们出现在--socket和--start-datetime=datetime之间的列表中,但是它们没有超链接!
这里还有一些需要考虑的问题:mysqlbinlog不是客户端程序。这是一个实用程序。在mysql中,客户端程序需要使用用户名和密码登录mysqld。
如果您查看MySQL客户端程序列表,请注意,mysqlbinlog并不存在,因为它是一个实用程序。您可以在mysqlbinlog中看到MySQL管理和实用程序列表。
如果使用的是选项文件,则mysqlbinlog永远无法响应[client]组标题下的选项。为什么?根据选项文件文档的说法:
客户端选项组由所有客户端程序读取(但不是mysqld)。这使您能够指定适用于所有客户端的选项。例如,客户端是用于指定用于连接到服务器的密码的最佳组。(但要确保选项文件只有自己才能读取和可写,这样其他人就无法找到您的密码。)确保不要在客户端组中放置选项,除非您使用的所有客户端程序都能识别该选项。如果尝试运行错误消息,则不理解该选项的程序在显示错误消息后退出。
我不知道你会不会遇到我的建议,但现在.
如果您使用的是选项文件,则使标头使用[mysqlbinlog]而不是[client]。作为一个实用工具,我知道[mysqlhotcopy]可以用作组头。请试用[mysqlbinlog]作为组标题,看看它是否有用。
由于您正在连接到运行MySQL 5.5的DB Server,因此它的mysqld将永远不会理解--ssl-crl和--ssl-crlpath变量,因为它们属于MySQL 5.6.3。我猜这意味着您正在使用mysqlbinlog从MySQL 5.6机器连接MySQL 5.6。如果您是为binlgogs远程连接,则不需要指定任何SSL连接选项。
https://dba.stackexchange.com/questions/108694
复制相似问题