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

MySQL에서 root@localhost 사용자 이름을 변경하는 방법

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; 명령을 실행하여 권한 캐시를 갱신해야 한다는 점을 잊지 마세요.