

### 環境

OS： Amazon Linux AMI release 2018.03(Macからssh接続している)  
RDB:DBエンジン Aurora (MySQL 5.6) 1.22.2を使用  
※`select version()`した結果5.6.10-log と表示  
Python: ver2.6.9  
※追記：pyenvにてPython ver3.6.1を導入するも変化なし  
mysql-connector-python.x86_64 2.1.7-1.el6 @mysql-connectors-community  
※mysql-connectorは `yum list installed | grep mysql-connector-python` にて確認

### 前提

[MySQL Python connector TypeError: wrap_socket() got an unexpected keyword
argument 'ciphers' -
StackOverflow](https://stackoverflow.com/questions/49052965/mysql-python-
connector-typeerror-wrap-socket-got-an-unexpected-keyword-argume)は確認済。

### 問題点

テーブル間の定義の違いを修正する`ALTER`文を生成するために下記のようなコマンドを記入しました。

[code]

    $ mysqldiff \
      --server1=username:password@hostname \
      --difftype=sql \
      --changes-for=server1 \
      --force \
      db1:db2
    
[/code]

※参考記事：[MySQL (MariaDB)
データベース定義の差分を取得する方法](https://qiita.com/shogogg/items/977cf2c7ab3acfba7af8)

そうすると表題のエラーが発生しました。

[code]

    Traceback (most recent call last):
      File "/usr/bin/mysqldiff", line 268, in <module>
        servers = connect_servers(server1_values, server2_values, conn_opts)
      File "/usr/lib/python2.6/site-packages/mysql/utilities/common/server.py", line 489, in connect_servers
        source = get_server(src_name, src_dict, quiet, verbose=verbose)
      File "/usr/lib/python2.6/site-packages/mysql/utilities/common/server.py", line 336, in get_server
        server_conn.connect()
      File "/usr/lib/python2.6/site-packages/mysql/utilities/common/server.py", line 1098, in connect
        self.db_conn = self.get_connection()
      File "/usr/lib/python2.6/site-packages/mysql/utilities/common/server.py", line 1178, in get_connection
        db_conn = mysql.connector.connect(**parameters)
      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'
    
[/code]

原因として [MySQL Python connector TypeError: wrap_socket() got an unexpected
keyword argument 'ciphers' -
StackOverflow](https://stackoverflow.com/questions/49052965/mysql-python-
connector-typeerror-wrap-socket-got-an-unexpected-keyword-argume) を参考にMySQL
Connector/PythonとPythonのバージョンが合っていない可能性を考えました。

しかし、[MySQL の公式サイト](https://dev.mysql.com/doc/connector-python/en/connector-
python-versions.html) を確認したところ、Connector/Python
Versionの2.1はPython2.6系をサポートしているようでこれが原因では無いようです...

上記の問題の解決策をご教示お願い致します！  
※この情報が足りない！等ありましたらその旨も教えていただけると！

### ※補足

`yum list installed | grep mysql` した結果

[code]

    mysql-config.x86_64                     5.5.62-1.23.amzn1          @amzn-updates
    mysql-connector-python.x86_64           2.1.7-1.el6                @mysql-connectors-community
    mysql-utilities.noarch                  1.6.5-1.el6                @mysql-tools-community
    mysql55.x86_64                          5.5.62-1.23.amzn1          @amzn-updates
    mysql55-libs.x86_64                     5.5.62-1.23.amzn1          @amzn-updates
    mysql56.x86_64                          5.6.49-1.37.amzn1          @amzn-updates
    mysql56-common.x86_64                   5.6.49-1.37.amzn1          @amzn-updates
    mysql56-devel.x86_64                    5.6.49-1.37.amzn1          @amzn-updates
    mysql56-errmsg.x86_64                   5.6.49-1.37.amzn1          @amzn-updates
    mysql56-libs.x86_64                     5.6.49-1.37.amzn1          @amzn-updates
    mysql56-server.x86_64                   5.6.49-1.37.amzn1          @amzn-updates
    mysql80-community-release.noarch        el6-3                      installed
    php71-mysqlnd.x86_64                    7.1.33-1.43.amzn1          @amzn-updates
    php73-mysqlnd.x86_64                    7.3.21-1.28.amzn1          @amzn-updates
    
[/code]


CC BY-SA 4.0
2020-10-20T06:54:30.980
71343
2020-11-12T09:27:58.747
2020-11-12T09:27:58.747
40683
40683
question
python mysql aws sql amazon-linux
MySQL Utilitiesのmysqldiffのエラー『TypeError: wrap_socket() got an unexpected keyword argument 'ciphers'』の原因/解決方法