MySQL에서 보안을 강화하기 위해 기본 루트(root) 계정의 사용자 이름을 다른 이름으로 변경하고 싶은 경우가 있습니다. 이 작업은 UPDATE와 SET 명령을 사용하여 간단하게 처리할 수 있습니다.
기본 문법
UPDATE user SET user = '새로운사용자이름' WHERE user = 'root';
1단계: mysql 데이터베이스로 전환
MySQL의 사용자 정보는 mysql 데이터베이스의 user 테이블에 저장되어 있습니다. 먼저 USE 명령으로 해당 데이터베이스에 접속합니다.
mysql> use mysql; Database changed
2단계: 현재 등록된 사용자 목록 확인
변경 작업 전에 mysql.user 테이블에서 현재 존재하는 모든 사용자를 조회해 보겠습니다.
mysql> select user from mysql.user;
실행 결과는 다음과 같습니다.
+------------------+ | user | +------------------+ | Manish | | User2 | | mysql.infoschema | | mysql.session | | mysql.sys | | root | | Adam Smith | | User1 | | am | +------------------+ 9 rows in set (0.04 sec)
위 출력 결과에서 사용자 이름이 'root'인 계정을 확인할 수 있습니다.
3단계: UPDATE 명령으로 루트 사용자 이름 변경
이제 UPDATE 명령을 사용하여 사용자 이름 'root'를 'myRoot'로 변경해 보겠습니다.
mysql> update user set user = 'myRoot' where user = 'root'; Query OK, 0 rows affected (0.00 sec) Rows matched: 0 Changed: 0 Warnings: 0
4단계: 변경 결과 확인
변경이 정상적으로 적용되었는지 확인하려면 다시 한번 사용자 목록을 조회합니다.
mysql> select user from mysql.user;
실행 결과는 다음과 같습니다.
+------------------+ | user | +------------------+ | Manish | | User2 | | myRoot | | mysql.infoschema | | mysql.session | | mysql.sys | | Adam Smith | | User1 | | am | +------------------+ 9 rows in set (0.00 sec)
위 표에서 확인할 수 있듯이, 기존의 'root' 사용자 이름이 성공적으로 'myRoot'로 변경되었습니다.
주의 사항
- MySQL 8.0부터는 권한 테이블이 InnoDB로 관리되므로, 변경 후에는
FLUSH PRIVILEGES;명령을 실행하여 권한 캐시를 갱신하는 것이 좋습니다. - 루트 계정 이름을 변경하기 전에 반드시 해당 계정으로 로그아웃 상태가 아닌지, 그리고 새 이름으로 로그인이 가능한지 충분히 테스트하세요.
- 실무 환경에서는 루트 이름 변경보다 별도의 관리자 계정을 생성하고 루트 원격 접속을 제한하는 방식이 더 안전하게 권장됩니다.