我遇到了MySQL python连接的问题。
Traceback (most recent call last):
File "./expconfig.py", line 176, in <module>
cnx = mysql.connector.connect(**config)
File "/usr/lib/python2.6/site-packages/mysql/connector/__init__.py", line 179, in connect
return MySQLConnection(*args, **kwargs)
File "/usr/lib/python2.6/site-packages/mysql/connector/connection.py", line 95, in __init__
self.connect(**kwargs)
File "/usr/lib/python2.6/site-packages/mysql/connector/abstracts.py", line 728, in connect
self._open_connection()
File "/usr/lib/python2.6/site-packages/mysql/connector/connection.py", line 228, in _open_connection
self._ssl)
File "/usr/lib/python2.6/site-packages/mysql/connector/connection.py", line 150, in _do_auth
ssl_options.get('cipher'))
File "/usr/lib/python2.6/site-packages/mysql/connector/network.py", line 420, in switch_to_ssl
ssl_version=ssl.PROTOCOL_TLSv1, ciphers=cipher)
TypeError: wrap_socket() got an unexpected keyword argument 'ciphers'
MySQL服务器有“ssl_diabled”,因此客户端不需要SSL连接。但它会调用
我有以下,
代码
try:
flags = [ClientFlag.FOUND_ROWS,-ClientFlag.SSL]
config = {
'user' : 'ed30_user',
'password' : 'mypassword',
'host' : options.remHost,
'database' : 'config',
'client_flags': [-ClientFlag.SSL],
'ssl_disabled' : False
}
cnx = mysql.connector.connect(**config)
cur=cnx.cursor(dictionary=True)
答案 0 :(得分:3)
错误的原因是Pythong 2.6.6有&#34; ssl&#34;具有与MysqlConnector版本2.1.7预期的方法签名不同的模块。
MySQL网络https://dev.mysql.com/doc/connector-python/en/connector-python-versions.html具有正确的版本表
我退回到连接器版本mysql-connector-python-2.0.5-1.el6.noarch.rpm并且错误消失了。
答案 1 :(得分:0)
只设置'ssl_disabled':如果使用配置文件,则为true 或ssl_disabled ='True'(如果您的配置位于mysql.connector.connect函数的参数中)