こしあん日記 ~写真と猫とサッカーと~

子供たちの記録用にはじめたが、思春期になり写真を撮らせてもらえなくなる。写真と愛猫とサッカーが中心のブログです。

MySQL8.0をインストールして困ったことの覚書

私の会社のPCはCドライブがSSD、DドライブがHDD。

そのため極力Dドライブにデータを入れるようにしている。

そんな環境のため、ちょっと変わった構成で、ApachePHPもDドライブに入れている。

ドキュメントルートもDドライブ。

 

さすがにDB無しはいろいろと不都合があるので、MySQLをインストールすることにした。

いや、別にプログラマでもSEでもなく、デザイナーなのでいらないと言えばいらないけど、あると便利なので。

 

やった内容は以下。

 

1.MySQLのインストール(インストーラー利用)

2.phpMyAdminのインストール

 

MySQLインストーラーを使ったので、Cドライブにインストールされてしまった。

より複雑な環境になってしまった。

 

上記を終え、phpMyAdminを開いてもモジュールがないよ!と言われる。

phpinfoで確認してみると、エクステンションのパスが入っておらず、php.iniのパスがCドライブになっていたので、Apachehttpd.confでphp.iniのパスを変更。

たった2行だけど、ここまでで1時間は悩んだかな。

そして、よくこれでこれまで動いていたな。と思うと正常にiniを読みに行きだしたのでnoticeエラーまみれ。こちらはphp.iniを変更して解決。

 

これでどうだと再度phpMyAdminにログインしようとするとまたもエラー。

1つは文字コードが違う

もう1つは認証方法が違う

というエラー。

どうも調べてみると、MySQLの8.0から初期文字コードが変更され、認証方法も強固になったっぽい。

ということで、MySQLのコンフィグ変更。

 

昔はmy.confという名称だったが、今はmy.iniになっている。

コマンドプロンプトを管理者権限で立ち上げ、以下のコマンドで設定ファイルの場所がわかる。

sc qc mysql80

 

設定ファイルに文字コードを解決するため以下2行を追加

collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4

 

認証方法は、以前の方法を使うように設定するため100行目付近の

default_authentication_plugin=caching_sha2_password

の記述を

default_authentication_plugin = mysql_native_password

に変更。

 

これでMySQLのサービスを再起動したが、改善されず。。。

どうやら、ここまでに作成したユーザーは既に初期設定の内容で作られたユーザーなのでダメみたいで、再度MySQLのユーザーを作るとうまくphpMyAdminでログインできた。

 

一応PHPでの接続・切断もテストし、問題なし。

恐るべしMySQLのバージョン。