Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 루트 사용자의 전체 권한을 복원하는 방법

MySQL 루트 사용자 권한 복원 개요

MySQL에서 루트(root) 사용자의 전체 권한을 실수로 잃어버렸다면 UPDATE 명령문을 사용하여 손쉽게 복원할 수 있습니다. 이 글에서는 단계별로 루트 계정의 모든 권한을 되돌리는 방법을 알아보겠습니다.

1단계: mysqld 중지 후 --skip-grant-tables 옵션으로 재시작

가장 먼저 현재 실행 중인 mysqld 서비스를 중지한 뒤, --skip-grant-tables 옵션을 붙여 다시 시작해야 합니다. 이 옵션은 권한 테이블을 로드하지 않고 서버를 구동하기 때문에, 권한이 없는 상태에서도 MySQL에 접속할 수 있게 해줍니다.

2단계: 비밀번호 없이 MySQL 서버에 접속

서버가 재시작되면 -p 옵션(비밀번호 입력) 없이 mysql 클라이언트만으로 mysqld 서버에 접속합니다. 이때 사용자 이름도 별도로 지정하지 않아도 됩니다.

3단계: UPDATE 명령으로 루트 권한 복원

mysql 클라이언트에 접속한 후 아래 명령을 실행하여 루트 사용자에게 전체 권한을 다시 부여합니다.

mysql> UPDATE mysql.user SET Grant_priv = 'Y', Super_priv = 'Y' WHERE User = 'root';
Query OK, 0 rows affected (0.04 sec)
Rows matched: 1  Changed: 0  Warnings: 0

위 명령에서는 특히 슈퍼 권한(Super Privilege)을 활성화했습니다.

Super_priv = 'Y'

Grant_priv = 'Y'는 다른 사용자에게 권한을 부여할 수 있는 GRANT 권한을 의미하며, Super_priv = 'Y'는 서버 관리에 필요한 최상위 권한을 의미합니다.

4단계: FLUSH PRIVILEGES로 권한 새로고침

마지막으로 FLUSH PRIVILEGES 명령을 실행하여 변경된 권한 설정을 즉시 적용해야 합니다.

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.18 sec)

이제 루트 사용자는 원래 가지고 있던 전체 권한을 정상적으로 사용할 수 있습니다. 작업이 완료되면 반드시 --skip-grant-tables 옵션 없이 MySQL 서버를 재시작하여 보안을 유지하는 것을 잊지 마세요.