私はPythonを使用してMySQLデータベースに接続しようとしていますが、奇妙なエラーが発生しています。私はmysql
コンソールコマンドから同じ接続値を使用することができ、問題なく接続することができます。pymysqlがSSLで接続できない
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 exc OperationalError: (2003, u"Can't connect to MySQL server on '192.168.199.86' ([SSL: SSL_NEGATIVE_LENGTH] dh key too small (_ssl.c:590))")
私が実行している:これは私が取得していますエラーです
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)
AgentCheckをインポート
輸入pymysql チェックから:ここで
は、私が使用しています正確なコードですこのコードはUbuntuボックスにありますが、当初はSSL CAが自己生成証明書である可能性があります。だから私はステップを踏んだ hereしかし、それは何の違いもありませんでした。また、私は、このコードを実行しているプロセスがcertファイルへの完全なアクセスを持っていることを確認しましたそれ以外の原因は何ですか?
が見えます。 次のコマンドを実行して、以前のバージョンにあなたのOpenSSLパッケージをダウングレード: 須藤はapt-getをインストールのlibssl-devを= 1.0.1-4ubuntu3 のlibssl-docの= 1.0.1-4ubuntu3 libssl1.0.0 = 1.0.1-4ubuntu3 openssl = 1.0.1-4ubuntu3 これがうまくいかない場合は、ここでもっと長い手順を試してみてください。 https://groups.google.com/d/msg/security-onion/E7HdGGUuq6c/gqNBbT5TLw0J – Shahram