DB Python 開発

[Python+MySQL] RuntimeError: cryptography is required

[Python+MySQL] RuntimeError: cryptography is required

RuntimeError: cryptography is required for sha256_password or caching_sha2_password

ある日、PythonからMySQLに接続しようとしたらこのエラーが出た。
今回はこの cryptography is required のエラーについて紹介する。


どんなエラー?

cryptography is required は訳すと「暗号化が必要ですよ」。

何を暗号化するのかというとログインに用いるパスワード
MySQLに接続する際に sha256_password 又は caching_sha2_password を使うならパスワードを暗号化しろと言っているわけである。

余談だが、WindowsのタスクマネージャからPythonプログラムを定期的に実行している場合、この cryptography is required によって (0x1)エラー が発生する事もあるので要注意。

タスクスケジューラからpythonを実行すると(0x1)のエラーで失敗する理由とは


エラーの解決方法

エラーが発生する原因はPythonの暗号化ライブラリ不足
つまり以下のコマンドで暗号化ライブラリを追加すれば解決する。

pip install cryptography

参考
Improve helpfulness of error message when cryptography is required · Issue #768 · PyMySQL/PyMySQL · GitHub


Windows環境での注意点

Windows環境ではPythonのインストール先のフォルダによってはアクセス拒否エラーが発生する。
コマンドプロンプトを起動する際に「管理者として実行」を選んでアクセス拒否されないようにしよう。

右クリック -> 管理者として実行


KRSW

駆け出し機械学習エンジニア。機械学習、DB、WEBと浅く広い感じ。 Junior machine learning engineer. Not a specialist but a generalist who knows DB, WEB too.

役に立ったらシェアしてくれると励みになります。
If you felt this article is useful, please share.
にほんブログ村 IT技術ブログへ

-DB, Python, 開発
-, ,

Translate »
Social media & sharing icons powered by UltimatelySocial

Copyright© ITips , 2020 All Rights Reserved.