我有一个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
却不会吗?
答案 0 :(得分:1)
问题是权限问题。尽管文件 ca.pem 具有适当的权限,但它的目录( app / )没有读取权限。 因此,无法读取该文件。