1
0

More than 3 years have passed since last update.

MariaDB パスワードを忘れてしまいログインできなくなった (EC2を用いた本番環境編)

Last updated at Posted at 2020-06-04

今回の流れ

本番環境でMariaDBを使いパスワードを忘れてしまった際に、再設定するために流れです。

1.  Mysqlを停止します。
2.  ディストリビューションに応じて、sudo vim /etc/my.cnfまたは/etc/mysql/my.cnf
3.  [mysqld]のしたにskip-grant-tablesを追加
4.  Mysqlを再起動します。
5.  これで、以下のコマンドを使用してmysqlにログインできるはずです。 mysql -u root -p
6.  新しいパスワードを設定 ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
7.  mysql> flush privileges;
8.  /etc/my.cnfに戻って、skip-grant-tables を削除します。
9.  Mysqlを再起動します。
10. これで、新しいパスワードでログインできるようになります mysql -u root -p

Mysqlを停止します。

[ec2-user@ip-○○○-○○-○○-○ ~]$ sudo systemctl stop mariadb

本番環境(ec2)の場所で、vim  /etc/my.cnfまたは/etc/mysql/my.cnfを入力する。

[ec2-user@ip-○○○-○○-○○-○ ~]$ sudo vim  /etc/my.cnf

ログインをする際にパスワードを聞かれない様にするために、
以下の画像の様に[mysqld]と書かれている下にskip-grant-tablesを入力する。
スクリーンショット 2020-06-04 17.44.25.png

Mysqlを再起動します。

[ec2-user@ip-○○○-○○-○○-○ ~]$ sudo systemctl restart mariadb

ログインする

[ec2-user@ip-○○○-○○-○○-○ ~]$ mysql -u root -p
Entrを押すとログインできます。

新しいパスワードを設定する

MariaDB > update user set password=PASSWORD("設定したいパスワード") where User='root';

権限設定の反映

MariaDB > flush privileges;

→exitで一旦出る
MariaDB > exit

/etc/my.cnfに戻って、skip-grant-tables を削除します。

このままだとMariaDBにログインした際に誰でもログインできてしまうので削除しておきましょう。

[ec2-user@ip-○○○-○○-○○-○ ~]$ vim  /etc/my.cnf

[mysqld]
skip-grant-tables ←削除

MariaDBを再起動しましょう!

[ec2-user@ip-○○○-○○-○○-○ ~]$ sudo systemctl restart mariadb

これで、新しいパスワードでログインできるようになります

設定できたパスワードでログインしてみましょう!

[ec2-user@ip-○○○-○○-○○-○ ~]$ mysql -u root -p
Enter password: 

まとめ

自分もやってみて改めて思ったけどデータベースの設定など難しいなぁ、、、
パスワードの設定ミスにはくれぐれも気をつけましょう。

1
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
1
0