MySQL에서 root@localhost 사용자 이름 변경하기
MySQL 데이터베이스의 기본 관리자 계정인 root는 무차별 대입 공격 등 외부 공격의 주요 표적이 되기 쉽습니다. 따라서 보안을 강화하기 위해 root 사용자 이름을 다른 이름으로 변경하는 것이 좋은 습관입니다. 이 글에서는 root@localhost 사용자 이름을 변경하는 방법을 단계별로 살펴보겠습니다.
1. 사용자 이름 변경 문법
root 사용자 이름을 변경하려면 아래와 같은 UPDATE 문법을 사용합니다.
UPDATE mysql.user SET user = 'yourNewRootName' WHERE user = 'root';
mysql.user 테이블을 직접 수정한 경우에는 변경 사항을 즉시 적용하기 위해 권한 테이블을 새로 고쳐야 합니다.
FLUSH PRIVILEGES;
2. 현재 등록된 사용자 확인
먼저 MySQL에 등록된 모든 사용자 이름과 호스트를 확인해 보겠습니다. 아래 쿼리를 실행합니다.
mysql> select user,host from mysql.user;
실행 결과는 다음과 같습니다.
+------------------+-----------+ | user | host | +------------------+-----------+ | Bob | % | | Manish | % | | User2 | % | | mysql.infoschema | % | | mysql.session | % | | mysql.sys | % | | root | % | | @UserName@ | localhost | | Adam Smith | localhost | | John | localhost | | John Doe | localhost | | User1 | localhost | | am | localhost | | hbstudent | localhost | | mysql.infoschema | localhost | | mysql.session | localhost | +------------------+-----------+ 16 rows in set (0.00 sec)
3. root 사용자 이름 변경하기
이제 'root' 사용자를 다른 이름(예: 'MyRoot')으로 변경하는 쿼리를 실행합니다.
mysql> UPDATE mysql.user set user = 'MyRoot' where user = 'root'; Query OK, 1 row affected (0.13 sec) Rows matched: 1 Changed: 1 Warnings: 0
쿼리가 정상적으로 실행되어 1개의 행이 성공적으로 변경되었습니다.
4. 변경 결과 확인
'root'가 새로운 이름인 'MyRoot'로 제대로 변경되었는지 다시 한번 확인해 보겠습니다.
mysql> select user,host from mysql.user;
실행 결과는 다음과 같습니다.
+------------------+-----------+ | user | host | +------------------+-----------+ | Bob | % | | Manish | % | | MyRoot | % | | User2 | % | | mysql.infoschema | % | | mysql.session | % | | mysql.sys | % | | @UserName@ | localhost | | Adam Smith | localhost | | John | localhost | | John Doe | localhost | | User1 | localhost | | am | localhost | | hbstudent | localhost | | mysql.infoschema | localhost | | mysql.session | localhost | +------------------+-----------+ 16 rows in set (0.00 sec)
위 출력 결과를 보면 root 사용자가 성공적으로 "MyRoot"라는 새 이름으로 변경된 것을 확인할 수 있습니다.
참고: 더 안전한 방법
MySQL 5.7.6 이상 버전에서는 시스템 테이블(mysql.user)을 직접 수정하는 것보다 RENAME USER 구문을 사용하는 것이 더 안전하고 권장되는 방식입니다.
RENAME USER 'root'@'localhost' TO 'MyRoot'@'localhost';
다만 UPDATE 문으로 직접 변경한 경우에는 반드시 FLUSH PRIVILEGES; 명령을 실행하여 권한 캐시를 갱신해야 한다는 점을 잊지 마세요.