MySQL DROP USER 명령어와 mysql.user 테이블 확인
MySQL에서 DROP USER 문을 실행하면 해당 계정은 즉시 삭제되며, 그 결과는 mysql.user 테이블에서 직접 확인할 수 있습니다. 이 글에서는 실제 예제를 통해 사용자를 삭제한 전후의 테이블 상태를 비교해 보겠습니다.
1단계: 현재 등록된 모든 사용자 조회
먼저 SELECT 문을 사용하여 MySQL.user 테이블에 저장된 모든 사용자(user)와 호스트(host) 정보를 확인합니다.
mysql> select user,host from MySQL.user;
실행 결과는 다음과 같습니다.
+------------------+-----------+ | user | host | +------------------+-----------+ | Bob | % | | Manish | % | | User2 | % | | mysql.infoschema | % | | mysql.session | % | | mysql.sys | % | | root | % | | @UserName@ | localhost | | Adam Smith | localhost | | James | localhost | | John | localhost | | John Doe | localhost | | User1 | localhost | | am | localhost | | hbstudent | localhost | | mysql.infoschema | localhost | | mysql.session | localhost | +------------------+-----------+ 17 rows in set (0.00 sec)
현재 총 17개의 계정이 등록되어 있으며, 그중 삭제할 대상인 'hbstudent'(호스트: localhost)가 목록에 포함되어 있습니다.
2단계: DROP USER로 사용자 삭제
이제 DROP USER 문을 사용하여 'hbstudent'@'localhost' 계정을 삭제합니다. 사용자를 지정할 때는 반드시 호스트 정보까지 함께 명시하는 것이 좋습니다.
mysql> drop user 'hbstudent'@'localhost'; Query OK, 0 rows affected (0.17 sec)
Query OK 메시지가 출력되면 삭제가 정상적으로 완료된 것입니다.
3단계: 삭제 결과 검증
삭제 후 다시 MySQL.user 테이블을 조회하여 해당 사용자가 실제로 제거되었는지 확인합니다.
mysql> select user,host from MySQL.user;
실행 결과는 다음과 같습니다.
+------------------+-----------+ | user | host | +------------------+-----------+ | Bob | % | | Manish | % | | User2 | % | | mysql.infoschema | % | | mysql.session | % | | mysql.sys | % | | root | % | | @UserName@ | localhost | | Adam Smith | localhost | | James | localhost | | John | localhost | | John Doe | localhost | | User1 | localhost | | am | localhost | | mysql.infoschema | localhost | | mysql.session | localhost | +------------------+-----------+ 16 rows in set (0.00 sec)
결과 분석
위 결과를 보면 행 수가 17개에서 16개로 줄었고, 목록에서 'hbstudent'가 사라진 것을 확인할 수 있습니다. 즉, DROP USER가 성공적으로 실행되면 해당 계정은 mysql.user 테이블에서 즉시 제거됩니다.
만약 DROP USER 실행 후에도 사용자가 여전히 보인다면 다음 사항을 점검해 보세요.
- 호스트 불일치: 'user'@'%'와 'user'@'localhost'는 서로 다른 계정입니다. 삭제하려는 계정의 호스트가 정확한지 확인하세요.
- 권한 부족:
DROP USER를 실행하려면 CREATE USER 권한 또는 mysql 데이터베이스에 대한 UPDATE 권한이 필요합니다. - 세션 캐시: 이미 로그인 중인 세션은 삭제된 계정으로도 연결이 유지될 수 있으므로, 새로운 세션에서 다시 조회해 보세요.