PythonでMySQL接続時に「mysql.connector.errors.InterfaceError: sha256_password requires SSL」

MySQLのバージョン確認

mysqlのコマンドラインで確認

mysql -V

実行結果

$  mysql -V
mysql  Ver 8.0.27-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

実行内容とエラー

MySQLでアクセスを実施

import mysql.connector
cnx = mysql.connector.connect(user='user', password='password',
                                host='123.123.123.123')

実行時のエラー

$ python3 test.py
 :
raise errors.InterfaceError("{name} requires SSL".format(
mysql.connector.errors.InterfaceError: sha256_password requires SSL

エラー内容と対応

エラー内容としては、

raise errors.InterfaceError("{name} requires SSL".format(
mysql.connector.errors.InterfaceError: sha256_password requires SSL

というエラーログがあり、

sha256のパスワードでSSLが必要とのこと。

この点を公式の内容で確認してみたら、

実際に記述がありました。

公式サイトのページ

公式サイトの一部抜粋

公式サイトの文章をメモ

Connector/Python supports authentication plugins available as of MySQL 5.6. 
This includes mysql_clear_password and sha256_password, 
both of which require an SSL connection. 
The sha256_password plugin does not work over a non-SSL connection 
because Connector/Python does not support RSA encryption.
The connect() method supports an auth_plugin argument 
that can be used to force use of a particular plugin. 
For example, 
if the server is configured to use sha256_password by default 
and you want to connect to an account that authenticates using mysql_native_password, 
either connect using SSL or specify auth_plugin='mysql_native_password'.

このようになっているので、

auth_plugin='mysql_native_password'

をオプションにつけてやることで、

うまく実行ができるようになる。

スキルを使って、就職/転職/副業する時のサイト

プログラミングのスキルなどを、自分なりに高めた上で、

自分のスキルをアピールして就職や転職を行い、年収をあげるか、

副業という形で、年収にプラスアルファの稼ぎを増やすことはできます。

まずはできる範囲で取り組むことで、

少しずつ、経験値も増え、自分のスキルが収入につながるのでおすすめです。

おすすめ書籍

広告

おすすめ記事