'%'로 사용자를 생성한 상태에서 localhost로 사용자를 삭제하면 발생하는 오류입니다.
'%'를 사용하여 사용자를 생성하고 사용자를 localhost로 삭제해 보겠습니다. 구문은 다음과 같습니다.
CREATE USER 'yourUserName'@'%' IDENTIFIED BY 'yourPassword';
위의 구문을 사용하여 사용자를 생성해 보겠습니다. 사용자 생성 쿼리는 다음과 같습니다.
mysql> CREATE USER 'Jack'@'%' IDENTIFIED BY '1234'; Query OK, 0 rows affected (0.26 sec)
사용자가 성공적으로 생성되었는지 확인
mysql> select user,host from MySQL.user;
다음은 출력입니다.
+------------------+-----------+ | user | host | +------------------+-----------+ | Jack | % | | Manish | % | | User2 | % | | mysql.infoschema | % | | mysql.session | % | | mysql.sys | % | | root | % | | Adam Smith | localhost | | User1 | localhost | | am | localhost | +------------------+-----------+ 10 rows in set (0.00 sec)
위의 샘플 출력을 보면 이름이 'Jack'이고 호스트가 '%'인 사용자가 있습니다. localhost로 사용자를 삭제하려고 할 때마다 다음과 같은 오류가 발생합니다.
mysql> DROP USER 'Jack'@'localhost'; ERROR 1396 (HY000): Operation DROP USER failed for 'Jack'@'localhost'
호스트가 '%'인 위의 사용자를 삭제해 보겠습니다. 쿼리는 다음과 같습니다.
mysql> DROP USER 'Jack'@'%'; Query OK, 0 rows affected (0.19 sec)
사용자가 MySQL.user 테이블에서 삭제되었는지 확인하십시오. 쿼리는 다음과 같습니다.
mysql> select user,host from MySQL.user;
다음은 사용자 Jack이 성공적으로 제거되었음을 표시하는 출력입니다.
+------------------+-----------+ | user | host | +------------------+-----------+ | Manish | % | | User2 | % | | mysql.infoschema | % | | mysql.session | % | | mysql.sys | % | | root | % | | Adam Smith | localhost | | User1 | localhost | | am | localhost | +------------------+-----------+ 9 rows in set (0.00 sec)