MySQL Python连接器TypeError:wrap_socket()得到一个意外的关键字参数'ciphers'

时间:2018-03-01 15:23:45

标签: mysql-connector-python

我遇到了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连接。但它会调用

我有以下,

  • Python:2.6.6 MySql Python连接器mysql-connector-python-2.1.7
  • 操作系统:RHEL 6.6
  • MySQL服务器服务器版本:5.7.17-enterprise-commercial-advanced

代码

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)

2 个答案:

答案 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函数的参数中)