본문 바로가기

Database/MySQL

ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist

percona 8.0 과 기타 tool 들을 연동하면서 password 플러그인 문제로 골치가 아팠다.
이유는 8.0 의 기본이 'caching_sha2_password ' 인데

해당 플러그인 방식을 지원하지 않는 라이브러리 기반으로 작성된 tool 들이 있기 때문인데
이를 위해 다음과 같이 설정을 해 놓았었다.

# my.cnf
[mysqld]
... ...
default_authentication_plugin=mysql_native_password

계정도 다음처럼 생성했다.

mysql> select user, plugin from mysql.user;
+------------------+-----------------------+
| user             | plugin                |
+------------------+-----------------------+
| haproxy          | mysql_native_password |
| root             | mysql_native_password |
| test             | mysql_native_password |
| mysql.infoschema | caching_sha2_password |
| mysql.session    | caching_sha2_password |
| mysql.sys        | caching_sha2_password |
| root             | mysql_native_password |
+------------------+-----------------------+
7 rows in set (0.00 sec)

그런데... 테스트 중 귀찮았는지 무슨 생각이었는지 전부 mysql_native_password 로 변경을 해버리고 퇴근을 했는데
오늘와서 보니 show 구문이 실행이 안된다!

mysql> show databases;
ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist

다시 롤백...