我在Python的环境中使用python3.6(但在python2.7中遇到相同的错误)和mysql connector Python编写一个简单的脚本来访问托管在Hostgator中的数据库。这是错误:
Traceback (most recent call last):
File "/home/usuario/anaconda3/envs/fakebook/lib/python3.6/site-packages/mysql/connector/connection_cext.py", line 176, in _open_connection
self._cmysql.connect(**cnx_kwargs)
_mysql_connector.MySQLInterfaceError: SSL connection error: SSL_CTX_set_tmp_dh failed
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "teste.py", line 6, in <module>
passwd="senha"
File "/home/usuario/anaconda3/envs/fakebook/lib/python3.6/site-packages/mysql/connector/__init__.py", line 172, in connect
return CMySQLConnection(*args, **kwargs)
File "/home/usuario/anaconda3/envs/fakebook/lib/python3.6/site-packages/mysql/connector/connection_cext.py", line 78, in __init__
self.connect(**kwargs)
File "/home/usuario/anaconda3/envs/fakebook/lib/python3.6/site-packages/mysql/connector/abstracts.py", line 731, in connect
self._open_connection()
File "/home/usuario/anaconda3/envs/fakebook/lib/python3.6/site-packages/mysql/connector/connection_cext.py", line 179, in _open_connection
sqlstate=exc.sqlstate)
mysql.connector.errors.InterfaceError: 2026 (HY000): SSL connection error: SSL_CTX_set_tmp_dh failed
我的代码非常简单,它只是尝试连接到数据库:
^{pr2}$我在其他计算机上使用过这个库好几次,我也通过我的计算机连接到同一个数据库,使用同一个库,它总是使用这个代码。我尝试了MySQL Workbench,似乎它正在使用代码中相同的凭据连接到数据库。我已经试着向服务器支持寻求帮助,我的IP被允许访问数据库,即使这样我也无法与Python连接。我试着重新安装图书馆,但没有改变。在
谢谢大家!在
这对我有用(Ubuntu 16.04 LTS)。来自终端:
/etc/mysql/mysql.conf.d/mysqld.cnf
:sudo service mysql restart
只有当
mysql-connector-python
库使用C扩展而不是纯python实现时,才会出现这种情况。在自从版本8.0.11以来,默认值发生了变化,现在它使用C扩展(如果存在的话)。
https://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html
一种解决方案是通过该标志强制连接器tu使用python实现,只需将其添加到配置中的连接url:
我遇到了同样的问题,并通过添加基于建议here的
use_pure=True
参数来解决它:我的mac上的相关软件包:}已安装(都是Python)。在
mysql-connector-python 8.0.16
和{相关问题 更多 >
编程相关推荐