MariaDB ERROR 1396 (HY000): Operation CREATE USER failed for 오류 해결

MariaDB에서 사용자를 추가한 뒤 사용자를 삭제하고, 다시 동일한 사용자를 추가하다가 ERROR 1396 (HY000): Operation CREATE USER failed for 메시지를 만나셨나요? MariaDB ERROR 1396 오류 해결 방법을 살펴보겠습니다.

MariaDB ERROR 1396 (HY000) 오류 재현 상황

저는 User 값으로 username, Host 값으로 wordpress.my-net을 지정해서 계정을 만들었습니다.

그림 1. MariaDB 새로운 사용자 추가
그림 1. MariaDB 새로운 사용자 추가

작업을 하던 중, 작업을 처음부터 다시해야겠다는 생각으로 해당 사용자를 삭제했습니다.

그림 2. MariaDB DELETE문을 사용하여 사용자 삭제
그림 2. MariaDB DELETE문을 사용하여 사용자 삭제

삭제가 잘 되어서, 새로운 사용자를 동일하게 다시 추가하려고 하면 아래와 같이 ERROR 1396 (HY000): Operation CREATE USER failed for 메시지를 발생시키면서 사용자가 추가되지 않습니다.

그림 3. MariaDB ERROR 1396 (HY000): Operation CREATE USER failed for 오류 메시지 발생
그림 3. MariaDB ERROR 1396 (HY000): Operation CREATE USER failed for 오류 메시지 발생

오류 해결 방법

사용자를 삭제한 뒤 flush privileges를 실행해 줘야 합니다.

flush privileges;
SQL

위의 명령어를 입력한 뒤 다시 사용자를 생성하면 정상적으로 수행되는 것을 확인할 수 있습니다.

그림 4. FLUSH PRIVILEGES로 문제 해결
그림 4. FLUSH PRIVILEGES로 문제 해결

그리고 사용자를 삭제할 때는 delete 문을 사용해서 사용자를 삭제하지 말고, drop user 문을 이용해서 사용자를 삭제하기를 권장합니다. 위에서 생성한 사용자명과 호스트는 아래와 같이 삭제하면 됩니다.

DROP USER 'username'@'wordpress.my-net';
SQL

해결이 되지 않는 경우

위의 방법으로도 해결이 되지 않는 경우에는 db 테이블에 해당 사용자명과 호스트명을 가진 레코드가 있는지 확인하고, 만약 존재한다면, 아래와 같은 Query 문을 사용하여 삭제해 주도록 합니다. 삭제 후에는 flush privileges를 꼭 실행해 주어야 합니다.

delete from db where User = 'username' and Host = 'wordpress.my-net';
flush privileges;
SQL

이렇게 한 다음 다시 CREATE USER문을 이용해서 사용자를 생성하면 정상적으로 수행됩니다.

혹시 이렇게 했는데도 사용자가 생성되지 않는 분은 댓글로 상황 공유해 주시면 다른 필요한 분들께도 도움이 될 거예요.

관련 자료

StackOverflow의 ERROR 1396 관련 페이지를 참고했습니다.

같이 읽으면 좋은 글

Leave a Comment