我正在尝试使用SSL和PyMySQL连接我的数据库,但是找不到有关语法的良好文档。
这些凭据可在Workbench和CLI中使用,但使用PyMySQL时出现此错误。
无法连接到'server.domain.com'上的MySQL服务器([WinError 10061]无法建立连接,因为目标计算机主动拒绝了它)“)
db_conn = pymysql.connect(
host=db_creds['host'],
user=db_creds['user'],
passwd=db_creds['passwd'],
db=db_creds['db'],
charset=db_creds['charset'],
ssl={'ssl':{'ca': 'C:/SSL_CERTS/ca-cert.pem',
'key' : 'C:/SSL_CERTS/client-key.pem',
'cert' : 'C:/SSL_CERTS/client-cert.pem'
}
}
)
如果我关闭SSL并丢弃SSL参数,则可以连接不安全的设备。 SSL参数有什么问题?
答案 0 :(得分:1)
感谢大家的帮助。问题中列出的语法是正确的,但是我尝试连接的服务器正在使用非标准端口。我需要添加
端口= db_creds ['端口']
谢谢曼尼·卡里(MannyKary)的线索。
答案 1 :(得分:1)
对于需要 X509 的用户,我使用客户端证书和密钥连接 pyMysql 时遇到了同样的问题,TiDB(兼容 mySQL 5.7)服务器抱怨没有提供证书!!!
printWidth
查看 PyMysql 1.0.2 的源代码,似乎 ssl 参数现在是布尔值而不是 ssl_dict,因此您应该将所有 ssl 参数放入单独的参数中,例如,
[2021/05/18 16:31:23.881 +00:00] [INFO] [privileges.go:258] ["ssl check failure, require x509 but no verified cert"] [user=mindline_root] [host=%]