본문 바로가기

개발

[MariaDB] ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.



Server version: 5.7.17-0ubuntu0.16.04.2 (Ubuntu)




( 문제 )


mysql 로그인시 비밀번호는 맞으나 데이터베이스를 사용하려고 하면 아래와 같은 에러 발생


mysql> use mysql;


ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.




( 분석 )

현재 로그인 된 ID의 비밀번호 설정 (root)

mysql> set password=password('비밀번호') 

or

mysql>GRANT ALL PRIVILEGES ON DB명.* TO '유저명'@'%' IDENTIFIED BY '비밀번호'; 
mysql>GRANT ALL PRIVILEGES ON DB명.* TO '유저명'@'127.0.0.1' IDENTIFIED BY '비밀번호'; 
mysql>GRANT ALL PRIVILEGES ON DB명.* TO '유저명'@'localhost' IDENTIFIED BY '비밀번호'; 
mysql>FLUSH PRIVILEGES;


위 방법으로 일부 해결되는 듯 하였으나 재 로그인시 초기화 됨 (일시적임)



( 해결 )

오류 내용에 답이 있음. ALTER USER를 이용해서 패스워드 재 설정

ALTER USER '유저명'@'localhost' IDENTIFIED BY '비밀번호';    // 로컬에서 접근 할 수 있게 등록
ALTER USER '유저명'@'127.0.0.1' IDENTIFIED BY '비밀번호';    // 127.0.0.1(로컬)로 접근 할 수 있게 등록
ALTER USER '유저명'@'%' IDENTIFIED BY '비밀번호';            // 어디서나 접근할 수 있게 등록
FLUSH PRIVILEGES;




( 참고 )


mysql 5.7 부터 비밀번호 컬럼이 바뀐듯.

기존 password 대신 authentication_string을 사용


mysql> update user set authentication_string=password('비밀번호') where user='유저명';










맨 위로