실수로 삭제한 MySQL ROOT 계정 복구

MariaDB, MySQL

얼토당토않은 실수를 해버렸다.
운영 중인 서버의 개발 서버에서 사용하지 않는 Database들을 삭제하는 과정에서
실수로 ROOT 계정을 포함해서 삭제해버린 것이다.

아뿔싸이미 때는 늦었다.
하지만 다행인 것은 실제 서비스 중이 아닌 개발 서버 환경이라는 것…;


root 
계정 없이는 다른 계정 추가 삭제는 물론 데이터베이스 관리가 불가하기에
정말 난감한 상황이 아닐 수 없다.

하지만 손쉽게 복구할 수 있는 방법이 있으니 당황은 금물!

실수로 삭제한 root 계정을 복구하는 절차는 다음과 같다.

1. MySQL 혹은 MariaDB 프로세스 종료

2. 인증 절차 없는 접속 모드로 DB 프로세스 시작

3. root 계정 추가

4. 추가한 root 계정에 모든 권한 부여

5. DB 프로세스 정상적으로 재시작

위와 같이 5단계로 구성되며 다음과 같은 명령어로 가능하다.
($ 리눅스 콘솔, > MySQL 콘솔)

$ps -ef | grep mysqld
이 명령어로 실행 중인 DB 프로세스의 pid를 알아낸다.

$kill -9 ‘프로세스 ID’ 프로세스 종료

$mysql  –skip-grant &
위의 명령어로 인증 절차 없이 로그인 가능하게 실행
(혹은 mysqld_safe 스크립트가 이용되기도 한다서버 환경이나 설치 방식에 따라 상이)

$mysql -u root mysql
위의 명령어로 인증 절차 없이 MySQL 콘솔 접속

>use mysql;
 명령어로 mysql database 선택

>insert into user (Host, User, Password) values (‘localhost’, ‘root’, password(‘사용할 패스워드‘));
위의 명령어로 삭제된 root 계정 추가

>grant all privileges on *.* to root@localhost  with grant option;
위의 명령어로 생성된 root 계정에 모든 권한을 부여

>flush privileges;
위의 구문으로 변경된 모든 사항 적용

>exit;
exit 구문으로 MySQL 콘솔 종료

위의 절차를 마친 후 다시 정상적으로 MySQL 혹은 MariaDB 프로세스를 실행시켜주면
root 계정을 정상적으로 다시 사용할 수 있다.

2 thoughts on “실수로 삭제한 MySQL ROOT 계정 복구”

댓글 남기기