본문 바로가기

개발

HOW TO: mysql 8 에서 유저 패스워드 변경하기

MYSQL 5.7을 사용하다, AWS RDS로 이전하면서 mysql 8.0.13 으로의 업그레이드를 진행하게 되었다.

문제는 테스트를 위해서 로컬 docker환경에서 이미지를 내려받아, 유저의 패스워드를 변경하려 했지만 아래와 같이 오류가 일어났다.

mysql> UPDATE mysql.user
SET password=PASSWORD('PaSsWoRdToChAnGe') 
WHERE user='DBUSER';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('PaSsWoRdToChAnGe') WHERE user='root'' at line 1

원인

분명 문법상에서는 틀린것이 없는데 오류를 내뿜어 검색을 해보았더니,

위와 같이 비밀번호 변경을 위해서 PASSWORD 라는 내장함수가 5.7.5 부터 deprecated 되었고, 8.0.11 부터 삭제되었다는 것이다.

해결법

mysql 8.0.11 부터는 아래와같이 패스워드를 변경하면 된다.

ALTER USER '유저명'
IDENTIFIED WITH caching_sha2_password
BY '변경할비밀번호';

위와 같이 변경하면된다.