728x90
반응형
문제점 및 증상
특정 계정의 Host를 변경할 때 다음과 같이 View 관련 오류가 발생하였습니다.
MariaDB [mysql]> update user set Host = '172.16.10.%' where Host = '%' and User = 'root';
ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
이 문제에 대한 해결 방법일 정리해 둡니다.
해결방안
MariaDB-10.4+ 이후부터 mysql.user 가 테이블이 아니라 VIEW로 변경되었습니다.
따라서 직접적으로 INSERT, UPDATE가 안되고, "ALTER USER", "SET PASSWORD" 구문일 이용해야만 합니다.
Host를 변경하고자 할 때는 아래와 같이 "RENAME" 구문을 이용합니다.
MariaDB [mysql]> RENAME USER "root"@"%" TO "root"@"172.16.10.%";
Query OK, 0 rows affected (0.001 sec)
MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)
특정 로그인 계정에 대한 비밀번호를 변경하고자 할 때는 다음과 같이 수행합니다.
-- ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('로그인 비밀번호');
FLUSH PRIVILEGES;
참고자료
"ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them":https://stackoverflow.com/questions/64841185/
'DB > MySQL' 카테고리의 다른 글
[MariaDB] "UTF-8" 문자열 자료 입력 시, "Incorrect string value" 오류 발생 문제 (0) | 2022.12.27 |
---|---|
[MariaDB] 테이블 및 인덱스 용량 확인 (0) | 2022.10.12 |
[MariaDB] "Incorrect definition of table mysql.event" 오류 해결 방법 (1) | 2021.08.22 |
[MariaDB] Database를 백업하는 방법 (0) | 2021.06.27 |
[MariaDB] 시간대 (time-zone) 설정하기 (0) | 2021.04.26 |