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)")

2. MySQLGUIを使ってコネクションを試みる f:id:ogady:20190218222039p:plain

 上と同じエラー。え~xamppで設定したパスワード無効になってる??
 それとも①で変更したののがまずかったのか?
 PC落ちたときになにかおかしくなったのか?

3. 最終手段、再インストール

 再度python manage.py migrateしうまく行ったけどすっきりしない。。。  なぜなのか。。。

結論

caching_sha2_passwordのせいではない。
・PCはちゃんとshutdownしよう。。。
 


参考にさせていただいた方たち↓ www.s-style.co.jp

qiita.com