尝试使用python-mysql-connector建立与Mysql服务器的SSL连接时访问被拒绝

时间:2018-07-31 05:34:32

标签: python mysql ssl

我有一个python应用程序,需要建立与Mysql数据库的ssl加密远程连接。我正在使用python-mysql-connector库。
这是代码示例:

config {
    'host':    'XX.XX.XX.XX',
    'user':    'user',
    'password':'password',
    'ssl_ca':  '/etc/app/ssl/ca.pem',
    'database':'database'
}
conn = mysql.connector.connect(**config)

在服务器上启用了SSL。

已将用户设置为需要SSL(不是X509)。

我有FLUSH PRIVILEGES;

文件 ca.pem 是在服务器上生成的,并已复制到客户端计算机,并具有该应用程序的适当读取权限。

每次执行此代码时,都会收到错误消息:

  

错误:MYSQL错误:1045(28000):用户被拒绝访问   '用户'@'XX.XX.XX.XX'(使用密码:是)

仅当我使用python库进行连接并且用户设置为REQUIRE SSL时,才会出现此错误。如果回退REQUIRE SSL要求,则可以连接。尽管没有ssl。

我可以在客户端计算机(以及任何其他计算机)上成功运行:

mysql -u 'user' -p -h XX.XX.XX.XX

这提供了安全的连接。

有人能帮我弄清楚mysql-client如何建立安全连接,而python-mysql-connector却不会吗?

1 个答案:

答案 0 :(得分:1)

问题权限问题。尽管文件 ca.pem 具有适当的权限,但它的目录( app / )没有读取权限。 因此,无法读取该文件。