서버 운영 관리 [ Tip ]

MySQL 패스워드 초기화

MySQL 관리자 패스워드를 분실한 상황이라면 현재 서비스를 운영하는데 문제가 발생하지 않을 수 있습니다.

다만, 이후 'DB생성' , 'MySQL 환경설정' , '사용자 권한 변경' 등 중요한 작업을 진행하기 앞서 지원받을 수 없는 상황이 발생합니다.


이런 상황에서 MySQL 데몬 구동 권한이 있을경우 비교적 간단하게 MySQL 관리자 패스워드 초기화 작업을 진행하실 수 있습니다.

본 매뉴얼은 MySQL 패스워드를 분실했을 경우 초기화 하는 절차를 소개하도록 하겠습니다.
 

 

MySQL 패스워드 초기화 하기 


 

1. MySQL 서비스 중지 (운영중인 서버라면 서비스가 중단될 수 있으니 유의하시기 바랍니다.)

소스설치인 경우

$ /etc/init.d/mysqld stop

 

패키지설치인 경우

$ service mysqld stop

 

실제 MySQL이 종료되었는지 확인해봅니다.

$ ps -ef | grep mysqld

 

2. mysqld_safe 실행 (MySQL 안전모드 실행)

-> mysqld_safe는 접속정보 없이 로그인을 할 수 있게 실행하는 방법입니다. 또한 &는 백그라운드로 실행합니다.

소스 설치

$ /usr/local/mysql/bin/mysqld_safe --skip-grant & 

 

패키지 설치

$ mysqld_safe --skip-grant & 

 

3. MySQL 에 로그인한 이후 다시 패스워드를 변경할 수 있습니다.

$ mysql -u root mysql

 

4. MySQL root 패스워드 변경

 

(5.7 미만)

mysql> use mysql;

Database changed

mysql> set password for 'root'@'localhost' = PASSWORD('변경할패스워드');

또는

mysql> update mysql.user set password=password('변경할패스워드') where user='root' and Host='localhost';

Query OK, 3 rows affected (0.00 sec)

Rows matched: 3 Changed: 3 Warnings: 0

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> quit

Bye

 

(5.7 이상)

mysql> use mysql;

Database changed

mysql> alter user 'root'@'localhost' identified by '변경할 패스워드';

또는

mysql> update mysql.user set authentication_string=password('변경할패스워드') where user='root' and Host='localhost';

Query OK, 3 rows affected (0.00 sec)

Rows matched: 3 Changed: 3 Warnings: 0

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> quit

Bye

 

5. MySQL 재시작

소스 설치
$ /etc/init.d/mysqld restart

패키지 설치
$ service mysqld restart

 

6. 변경한 패스워드로 로그인해보면 정상적으로 로그인 되는것을 확인할 수 있습니다.

mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.1.73 Source distribution

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

Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates.

Other names may be trademarks of their respectiveowners.

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

mysql>

 

비교적 간단하게 MySQL 패스워드 초기화 작업을 진행할 수 있지만, 변경 후 웹 서비스나 다른 서비스에도 영향이 갈 수 있는 작업인 만큼

서비스를 필히 확인 후 작업을 진행하시기 바랍니다.

※ 작업을 진행하기 전 신중히 작업을 진행하시기 바랍니다.