Django学習メモ⑤ ~MySQLでハマった~
家に帰ったらPCが落ちていて、起動後Anacondaローカル環境で以下エラーが発生
$python manage.py runserver ↓ $RuntimeError: cryptography is required for sha256_password or caching_sha2_password
昨日までは普通に起動できていたのに、、、
調べてみた
どうやら認証プラグインがMySQL8.0より新たに追加された caching_sha2_password に変更されているとのことで、パスワードに暗号化が必要だと言われているっぽい。
とりあえずいろいろ試してみた。
1. 昔の認証プラグインのデフォルト(mysql_native_password)に戻してみる
mysql> SELECT host, user, plugin FROM mysql.user; mysql> ALTER USER 'root'@"localhost" IDENTIFIED WITH mysql_native_password BY '{password}'
結果:無理だった。以下エラーが発生
django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")
上と同じエラー。え~xamppで設定したパスワード無効になってる??
それとも①で変更したののがまずかったのか?
PC落ちたときになにかおかしくなったのか?
3. 最終手段、再インストール
再度python manage.py migrate
しうまく行ったけどすっきりしない。。。
なぜなのか。。。
結論
・caching_sha2_password
のせいではない。
・PCはちゃんとshutdownしよう。。。
参考にさせていただいた方たち↓ www.s-style.co.jp