MW211 EXIT

devlog
MySQL8/ログインできない
2019年02月01日
MySQL8だとパスワードの暗号方式が変わったため
(rootでも)phpMyAdminからログインできなくなってしまっている。

で、その対処方法。

(1) コマンドライン(「MySQL 8.0 Command Line Client」)でログインする
    (こちらはrootユーザのパスワードでログインする(ログインできる))

(2) 以下SQL文にて、ユーザの登録状況を確認する
    ┌──────────────────────────────────┐
    │SELECT `user`,                                                      │
    │       `host`,                                                      │
    │       `plugin`                                                     │
    │    FROM `mysql`.`user`;                                            │
    └──────────────────────────────────┘
    すると`plugin`が「caching_sha2_password」(新しい形式のパスワード)に
    なっているので、これを古い形式のパスワード(mysql_native_password)に変更する
    以下SQL文を実行する
    ┌──────────────────────────────────┐
    │ALTER USER 'root'@'localhost'                                       │
    │    IDENTIFIED WITH mysql_native_password                           │
    │               BY 'パスワード';                                     │
    └──────────────────────────────────┘
    「パスワード」の部分はそれまでのパスワード(新しくてもよい)に読み替えのこと
    これでDB側はOK

(3) MySQLの設定ファイル「my.ini」の中身を変更する
    このファイルは以下の配下あたりにある(隠しフォルダなので注意)
    ┌──────────────────────────────────┐
    │C:\ProgramData\MySQL\MySQL Server 8.0                               │
    └──────────────────────────────────┘
    そして、その中身を以下のように書き換える
    ┌───┬──────────────────────────────┐
    │変更前│default_authentication_plugin=caching_sha2_password         │
    ├───┼──────────────────────────────┤
    │変更後│default_authentication_plugin=mysql_native_password         │
    └───┴──────────────────────────────┘
    なお、当該ファイルは管理者権限で書き換える必要があるので注意
    →メモ帳を管理者権限で開き、当該ファイルを読み込んで更新する形が確実
    後は、MySQLを再起動すればOK
分類:MySQL