본문 바로가기
백엔드(Back-End)/MySQL(RDBMS)

[MariaDB] - 10.4 version 이후 admin Password 설정 시 ERROR 1356 (HY000)

by TwoJun 2023. 8. 25.

MariaDB(MySQL) 10.4 이후 버전 업부터 발생한 비밀번호 설정 시 발생한 관련 오류에 대해 포스팅하고자 합니다.

 

 

 

1. 문제 상황

1-1. 프로젝트와 데이트베이스 연동 문제

(1) HomeBrew를 통해 MariaDB를 설치하고 IntelliJ에서 Spring Boot 프로젝트와 데이터베이스를 연동하는 과정에서 아래와 같은 오류가 발생하였습니다.

Failed Message

 

 

 

1-2. 프로젝트 간 연동문제는 비밀번호가 설정되지 않아 발생하는 오류로 확인 

(1) 관련 내용을 찾아봤을 때 MariaDB를 설치하고 계정 비밀번호를 설정하지 않은 상태에서 MariaDB를 다른 개발 환경에서 연동하고자 할 때 이러한 문제가 발생할 수도 있다는 것을 확인했습니다.

 

 

 

 

1-3. 이후 iTerm2에서 MariaDB에 접속 후 root 계정의 비밀번호를 설정하는 과정에서 직접적인 문제 발생 

(1) USE mysql;

 

(2) SELECT Host, User, Password FROM user;

USE mysql;
SELECT Host, User, Password FROM user;

use mysql;

 

 

(3) 비밀번호 설정을 위해 아래와 같은 SQL 작성

- UPDATE user SET password=password('password') WHERE user=root;

- (단, 'password'는 직접 설정할 패스워드)

UPDATE user SET password=password('password') WHERE user=root;

 

 

 

(4) SQL 전송 시 아래와 같은 오류 메시지 발생

- ERROR 1356 (HY000): View 'mysql.user' references invalid tables(s) or column(s) or functions(s) or definer/invoker of view lack rights to use them

ERROR 1356(HY000)

 

 

 

 

 

 

2. 문제 원인 / 해결

2-1. 원인 / 해결 방법

(1) MariaDB가 버전이 업그레이드되면서, mysql.user가 테이블이 아닌 View로 변경되었기 때문에 비밀번호 설정 시 SET password 구문을 사용해 주면 됩니다.

- Reference URL

https://stackoverflow.com/questions/64841185/error-1356-hy000-view-mysql-user-references-invalid-tables-or-columns-o

 

ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack ri

I have tried query but there is an error. Does anybody solved the error? MariaDB [mysql]> UPDATE user SET Host='%' WHERE User='root'; ERROR 1356 (HY000): View 'mysql.user' references invalid t...

stackoverflow.com

Reference

 

 

(2) 이미 아래처럼 버전이 10.4를 훨씬 넘어섰기 때문에 위와 같은 방법으로 SQL 수정 후 재시도했습니다.

select version();

 

 

(3) SET password for 'root'@'localhost' = password('password');

SET password for 'root'@'localhost' = password('password');

 

 

 

(4) 쿼리가 정상적으로 수행되었고 비밀번호도 새롭게 설정된 것을 확인할 수 있었습니다.

select user, host, password from user;

 

 

 

(5) 다시 IntelliJ로 넘어와서 데이터베이스 연결을 재시도합니다.

Test Connection 재시도

 

 

 

(6) Test connection 진행 시 정상적으로 데이터베이스(MariaDB)와 연동이 완료된 것을 확인할 수 있었습니다.

Test Connection 재시도 성공

 

 

 

 

 

※ 해당 포스팅에 대해 내용 추가가 필요하다고 생각되면 기존 포스팅 내용에 다른 내용이 추가될 수 있습니다.

개인적으로 공부하며 정리한 내용이기에 오타나 틀린 부분이 있을 수 있으며, 이에 대해 댓글로 알려주시면 감사하겠습니다!

댓글