LoginSignup
0
0

More than 3 years have passed since last update.

おやっ!?MySQLに急にログインできなくなった時の対処法

Posted at

皆さんこんにちは!

今日は、セキュリティが頑固なMySQLのコマンドラインで急にログインが出来なくなったので、その解決方法の備忘録として書いていきます。

MySQLって厄介で、一度何かの設定をミスると再インストールなんてことも珍しくありません。ちなみに僕は2回再インストールしています。

ただ、毎回そんなことをしては時間はかかるし、エンジニアらしくありませんよね?

MySQLは同じエラーでも人によっては解決できない場合もあります。

なので、このコマンドを打ったら解決できたよ!っていうよりかは、どのようにして解決できたかを書いていきたいと思います。

同じようなエラーに引っかかった人、違うエラーに引っかかった人にも手助けになればなと思うので、是非ご参考程度にご覧ください!

MySQLのコマンドプロンプトからパスワードを入力してもできない場合は、Windowsであればコマンドプロンプト、Macならターミナルから操作します。なので、各自、MySQLの環境変数を設定してください。

MySQLのユーザー情報を取得

コマンドプロンプト、もしくはターミナルで以下のコマンドを実行してください。

mysql select Host, User FROM mysql.user
// パスワードも取得したい場合
mysql select Host, User, authentication_string FROM mysql.user

※注意コマンドプロンプト、ターミナルからMySQLコマンドを実行する時、末尾にセミコロン(;)は付けないでください!

すると、このようにユーザー情報が出てくると思います。

+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+

ここで、rootユーザーが無い場合は、create userで作成して見て下さい。

ユーザーにアクセス

mysql -uroot -hlocalhost -p

と入力し、以下の画面が出てきます。

Enter password:

僕は、ここで何も入力せずにEnterキーを押すと入れました!

これでも入れない場合は、新しいユーザーを作成してください(create user)

パスワードの設定

次に、パスワードの設定を行います。'YOUR_PASSWORD'で自分のパスワードを入力してください。

set password = 'YOUR_PASSWORD';

権限を付与

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YOUR_PASSWORD';
flush privileges;

MySQLコマンドプロンプトでアクセス

MySQLのコマンドプロンプトを開き、先ほどせってしたパスワードを入力してください。

Enter password: ****************
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 8.0.22 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

このような画面になれば成功です!

port番号にミスアリ!?

ここからは番外編です。

このような流れで大体の人はアクセスできると思うのですが、僕はアクセスできなかったんですよね。。。

ここで、先ほどWindowsのコマンドプロンプト、Macのターミナルからアクセスし、以下のコマンドを実行してください。

mysql> status

すると、色々な情報が出てくると思います。

TCP port: 3306

ここで、ポート番号出てきます。

そしたら、MySQLのmy.iniを開いたところ(一応、my.iniの場所を載せておきます。人によっては、my.iniが無い場合もあるそうです。なので、ご参考までに。C:\ProgramData\MySQL\MySQL Server 8.0\)

my.ini
[client]

# pipe=

# socket=MYSQ

port=3308

[mysqld]

# The next three options are mutually exclusive to SERVER_PORT below.
# skip-networking
# enable-named-pipe
# shared-memory

# shared-memory-base-name=MYSQL

# The Pipe the MySQL Server will use
# socket=MYSQ

# The TCP/IP Port the MySQL Server will listen on
port=3308

2回再インストールしていたので、port番号は(3308)になっていました。

なので、これを3306に変えたところ無事入れました!

いかがだったでしょうか?

MySQLのエラーは本当に厄介です。時間も潰れます。ですが、自分なりに考えたり、調べたりして頑張って解決してください!

応援してます!!

以上、「MySQLに急にログインできなくなった時の対処法」でした!

良ければ、LGTM、コメントお願いします。

また、何か間違っていることがあればご指摘頂けると幸いです。

他にも初心者さん向けに記事を投稿しているので、時間があれば他の記事も見て下さい!!

Thank you for reading

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0