gpt4 book ai didi

python - pymysql 无法使用 SSL 连接

转载 作者:可可西里 更新时间:2023-11-01 06:52:13 24 4
gpt4 key购买 nike

我正在尝试使用 python 连接到 MySQL 数据库,但出现了一个奇怪的错误。更复杂的是,我可以使用来自 mysql 控制台命令的相同连接值,并且它可以毫无问题地连接。

这是我使用的确切代码:

导入pymysql 从检查导入 AgentCheck

class DelayedJobCheck(AgentCheck):
def check(self, instance):
self.log.info("testing connection")
self.log.info(instance)

connection = pymysql.connect(**instance)

cur = cnx.cursor(buffered=True)
cur.execute("SHOW STATUS LIKE 'Ssl_cipher'")
print(cur.fetchone())
cur.close()
cnx.close()

self.gauge('hello.world', 1)

这是我遇到的错误:

Traceback (most recent call last):  File "/opt/datadog-agent/agent/checks/__init__.py", line 661, in run    self.check(copy.deepcopy(instance))  File "/opt/datadog-agent/agent/checks.d/delayed_job.py", line 10, in check    connection = pymysql.connect(**instance)  File "/opt/datadog-agent/embedded/lib/python2.7/site-packages/pymysql/__init__.py", line 88, in Connect    return Connection(*args, **kwargs)  File "/opt/datadog-agent/embedded/lib/python2.7/site-packages/pymysql/connections.py", line 644, in __init__    self._connect()  File "/opt/datadog-agent/embedded/lib/python2.7/site-packages/pymysql/connections.py", line 869, in _connect    raise excOperationalError: (2003, u"Can't connect to MySQL server on '192.168.199.86' ([SSL: SSL_NEGATIVE_LENGTH] dh key too small (_ssl.c:590))")

我在 Ubuntu 机器上运行这段代码,我最初认为这可能是因为 SSL CA 是一个自生成的证书。所以我按照步骤 here但是,这没有任何区别。我还验证了运行此代码的进程可以完全访问证书文件

还有什么可能导致此问题的想法吗?

最佳答案

由于错误信息显示 dh key 太小,较大的 key 可能会有所帮助。将默认的 dh512.pem 文件替换为 dh4096.pem

sudo wget "https://git.openssl.org/gitweb/?p=openssl.git;a=blob_plain;f=apps/dh4096.pem"-O dh4096.pem

引用:http://www.alexrhino.net/jekyll/update/2015/07/14/dh-params-test-fail.html

关于python - pymysql 无法使用 SSL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33929394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com