MariaDB 암호를 잊어버려 로그인할 수 없게 되었다(EC2를 이용한 프로덕션 환경편)

이번 흐름



프로덕션 환경에서 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를 입력한다.


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: 

요약



자신도 해보고 다시 생각했지만 데이터베이스 설정 등 어렵다,,,,
비밀번호 설정 실수에 있어서도 주의합시다.

좋은 웹페이지 즐겨찾기