MySQL 8.0.13 でSSL接続とかやろうとしたら、パスワードが違うって言われてログイン出来なくなった話

マニュアルって、指示通りにやってできなかったらマニュアルとは言わんのではないか?ということを常々思っている情弱な僕です。

 

ts0818.hatenablog.com

⇧  この回で、MySQLのログインが出来んくなったんですよ。な~に~!?やっちまったな!

というわけで、ログインできるようにした話。

 

なんか知らんが、skip-grant-tablesが効かない

ネットとかの情報で、『MySQLのrootのパスワードを忘れても、オホホホ、そんなもの、MySQLサーバを一旦停止して、--skip-grant-tables オプション付きで再起動したったら、ログインできまっしゃろ、寝言は寝てから言うとき、あほんだら 』っていう意見が多かったんで、

dba.stackexchange.com

stackoverflow.com

⇧  仰せの通りにやってみたんです。

my.cnf の[mysqld] ブロックに、『skip-grant-tables』を追記。

f:id:ts0818:20181202141930p:plain

サービスの再起動。

f:id:ts0818:20181202142511p:plain

パスワードなしでログイン...出来んやんけ~!

f:id:ts0818:20181202143326p:plain

何それ~、skip-grant-tables 効かないけど?

When the server was started with --skip-grant-tables, some account-management statements were not disabled. (Bug #27906226)

https://docs.oracle.com/cd/E17952_01/mysql-8.0-relnotes-en/news-8-0-13.html

⇧  なんか知らんが、もしや、バグ?

なので、コメントアウトしときました。

f:id:ts0818:20181217204333p:plain

 

ファイルを使って、パスワードを初期化

skip-grant-tables オプションが利用できないので、ファイルを使ってroot パスワードの初期化を行うしか無さ気ですかね。

⇧  公式のマニュアルによると、txtファイルを用意して、

ALTER USER 'root'@'localhost' IDENTIFIED BY [新しいパスワード];

みたいな内容で保存すれば、パスワードを変更できるらしい。一旦、デスクトップに作成。

f:id:ts0818:20181217203742p:plain

MySQLをインストールしてるフォルダに移動。

f:id:ts0818:20181217165413p:plain

「続行(C)」で。

f:id:ts0818:20181217165349p:plain

ファイルが用意できたらば、コマンドプロンプトを管理者権限で起動。

f:id:ts0818:20181217165650p:plain

MySQLの該当するサービスが動いていないか確認。

sc query | find/i "mysql" | sort    

f:id:ts0818:20181217170250p:plain

MySQL 8.0.13 のサービスとして作成していたmysqld8.0.13をストップします。

net stop [停止したいMySQLのサービス名]

f:id:ts0818:20181217170503p:plain

新しく設定したパスワードのファイルを使って、MySQLを起動。

[MySQLをインストールしたディレクトリ\bin\mysqld.exe] --defaults-file=[使用したいmy.cnf、またはmy.iniなどまでのパス] --init-file=[新しいパスワードへの変更を記載したファイルまでのパス]

f:id:ts0818:20181217171025p:plain

で、別に、コマンドプロンプトを起動し、新しいパスワードでログイン...できないんですけど~!

f:id:ts0818:20181217171509p:plain

ポートまで指定したら行けました...。ポートは、my.cnf、もしくは、my.ini で設定してるポート番号です。(複数MySQLインストールしてたので、ポート指定していたのであった...SSL接続では、別ポートになるようです。)

f:id:ts0818:20181217200030p:plain

ちなみに、MySQL 8.0 からパスワード認証プラグインが変更されたようです。

MySQLでは、パスワードの認証時に、実行される、「authentication plugin」という仕組みのがあります。

MySQL8 からは、「caching_sha2_password」がデフォルトとなったようなのですが・・、mysqlを利用するクライアントソフトウェア(例えば、PhpMyAdminなど)では、この認証方法をサポートしていないため、エラーとなりログイン出来ないことがあるようです。

MySQL8でユーザーのパスワードの変更 / リセット方法 | WWWクリエイターズ

⇧  毎回、思うけど、バージョンアップしてくれるのは良いんだけど、もうちょっと周りのことも考えてほしいですね...

www-creators.com

f:id:ts0818:20181217202313p:plain

まぁ、何とかログインできるようになったから良いものの、何か、MySQL使う気力が湧いてこないっすね...

ちなみに、その後、WindowsMySQLサービスを再起動して、

f:id:ts0818:20181217203238p:plain

変更されたパスワードでログインできました。

f:id:ts0818:20181217203311p:plain

これで、MySQLWordPressで使用する用のデータベースを作成していけますかね。 

今回はこのへんで。