マニュアルって、指示通りにやってできなかったらマニュアルとは言わんのではないか?ということを常々思っている情弱な僕です。
⇧ この回で、MySQLのログインが出来んくなったんですよ。な~に~!?やっちまったな!
というわけで、ログインできるようにした話。
なんか知らんが、skip-grant-tablesが効かない
ネットとかの情報で、『MySQLのrootのパスワードを忘れても、オホホホ、そんなもの、MySQLサーバを一旦停止して、--skip-grant-tables オプション付きで再起動したったら、ログインできまっしゃろ、寝言は寝てから言うとき、あほんだら 』っていう意見が多かったんで、
⇧ 仰せの通りにやってみたんです。
my.cnf の[mysqld] ブロックに、『skip-grant-tables』を追記。
サービスの再起動。
パスワードなしでログイン...出来んやんけ~!
何それ~、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
⇧ なんか知らんが、もしや、バグ?
なので、コメントアウトしときました。
ファイルを使って、パスワードを初期化
skip-grant-tables オプションが利用できないので、ファイルを使ってroot パスワードの初期化を行うしか無さ気ですかね。
B.6.3.2.1 Resetting the Root Password: Windows Systems
MySQL :: MySQL 8.0 Reference Manual :: B.6.3.2 How to Reset the Root Password
⇧ 公式のマニュアルによると、txtファイルを用意して、
ALTER USER 'root'@'localhost' IDENTIFIED BY [新しいパスワード];
みたいな内容で保存すれば、パスワードを変更できるらしい。一旦、デスクトップに作成。
MySQLをインストールしてるフォルダに移動。
「続行(C)」で。
ファイルが用意できたらば、コマンドプロンプトを管理者権限で起動。
MySQLの該当するサービスが動いていないか確認。
sc query | find/i "mysql" | sort
MySQL 8.0.13 のサービスとして作成していたmysqld8.0.13をストップします。
net stop [停止したいMySQLのサービス名]
新しく設定したパスワードのファイルを使って、MySQLを起動。
[MySQLをインストールしたディレクトリ\bin\mysqld.exe] --defaults-file=[使用したいmy.cnf、またはmy.iniなどまでのパス] --init-file=[新しいパスワードへの変更を記載したファイルまでのパス]
で、別に、コマンドプロンプトを起動し、新しいパスワードでログイン...できないんですけど~!
ポートまで指定したら行けました...。ポートは、my.cnf、もしくは、my.ini で設定してるポート番号です。(複数MySQLインストールしてたので、ポート指定していたのであった...SSL接続では、別ポートになるようです。)
ちなみに、MySQL 8.0 からパスワード認証プラグインが変更されたようです。
MySQLでは、パスワードの認証時に、実行される、「authentication plugin」という仕組みのがあります。
MySQL8 からは、「caching_sha2_password」がデフォルトとなったようなのですが・・、mysqlを利用するクライアントソフトウェア(例えば、PhpMyAdminなど)では、この認証方法をサポートしていないため、エラーとなりログイン出来ないことがあるようです。
⇧ 毎回、思うけど、バージョンアップしてくれるのは良いんだけど、もうちょっと周りのことも考えてほしいですね...
まぁ、何とかログインできるようになったから良いものの、何か、MySQL使う気力が湧いてこないっすね...
ちなみに、その後、WindowsのMySQLサービスを再起動して、
変更されたパスワードでログインできました。
これで、MySQLにWordPressで使用する用のデータベースを作成していけますかね。
今回はこのへんで。