前提
超絶初心者の私が、超絶初心者のために書いたものですので、高度なことは一切書いてません。
ただのPCの管理者権限の話なので、つよいエンジニアの方は見る時間が無駄かと思います。。
環境:Windows10,XAMPP
社用PCで、XAMPPで既にMySQLインストール済み。
今までは他の社員さんが使っていた。
今回はPCのアカウントを新たに作成し、そのアカウントでログインしている状態。
コマンドプロンプトでMySQLに接続できない
MySQLで新しくユーザーを作ろうと思い、rootアカウントでログインしようとした所エラーが出てログインできないことが判明。
user-@DESKTOP-UKDRDQE c:\xampp
$ mysql -h localhost -u root
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: 指定されたモジュールが見つかりません。
エラーの意味
直訳:『認証プラグイン「 caching_sha2_password 」がロードされません』
認証プラグインが何かの原因でうまくいってない、ということ。
この場合だと、パスワードが間違ってるとかではなさそう。
(というか間違っていたとしてもrootアカウントが使えないと何もできない)
よく分からないが、なんだかアカウント認証が怪しいのでは?(勘)
が、そもそもrootアカウントにログインできないのでパスワードの変更も、MySQLアンインストールもできない。
結論
結局、PC自体の管理者アカウントでコマンド打ったら解決した。
(単純なオチでしたが、超初心者の方は私と同じようにハマるかも?と思ってこれを書きました。)
試したこと
PCの管理者アカウントでXAMPPを起動。
MySQL停止させた状態で、パスワードなしで起動できるモードで起動。
COMMON-ACCOUNT@DESKTOP-UKDRDQE c:\xampp
$ mysqld --skip-grant-tables &
18780 [Note] Using unique option prefix 'key_buffer' is error-prone and can break in the future. Please use the full name 'key_buffer_size' instead.
18780 [Note] mysqld (mysqld 10.1.33-MariaDB) starting as process 18776 ...
(参照: https://www.aiship.jp/knowhow/archives/28257 )
MySQLが起動していることを確認し、これはこのまま放っておいて、
もう1つコマンドプロンプトを開いてrootアカウントにログイン。
$ mysql -u root
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.33-MariaDB mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
やっと入れた!
ということで、やはり管理者権限が原因だったようだ。
あとはrootアカウントのパスワードを新しく変更し、ユーザーもついでに作成。
これでログインできるようになったので、自分のアカウントでもできるかやってみる。
XAMPPから普通にMySQL起動→ $ mysql -u root -p
で、先程設定したパスワードでログインできた!
ということで、MySQLログインができない!とハマってしまっている方は一度PC自体の管理者アカウントで色々試してみてはいかがでしょうか。
きっと無いと思うけど、また同じようなことでハマらないよう自分の備忘録として&超絶初心者さんの参考になればと思います。