Last Updated on 9월 11, 2020 by Jade(정현호)
안녕하세요
이번에는 MySQL 계정 패스워드 변경에 대해서 알아보려고 합니다.
PASSWORD() 함수
예전부터 사용하였던 방식은 다음과 같이 password() 함수를 이용하는 방식입니다.
mysql> set password = password('새암호');
다만 해당 함수는 5.7.6버전 부터는 Deprecated 되었고, 8.0.11에서 PASSWORD() 함수는 완전히 제거되었습니다. 따라서 최신 버전에서는 alter user 구문을 사용하는 것이 권장됩니다.
ALTER USER 구문
alter user 구문의 경우 패스워드 알고리즘을 지정해서 변경 가능하며, 제외시 계정의 기존 패스워드 알고리즘이 사용됩니다.
-- mysql_native_password 알고리즘을 사용하여 비밀번호 변경 예시 mysql> alter user 'test'@'localhost' identified with 'mysql_native_password' by '새암호'; -- caching_sha2_password 알고리즘을 사용하여 비밀번호 변경 예시 mysql> alter user 'test'@'localhost' identified with 'caching_sha2_password' by '새암호';
mysql은 계정별로 IP대역대를 지정할 수 있고 계정+IP대역대가 동일해야 같은 계정으로 인식됨으로 alter user 수행시도 계정명과 맞는 IP대역대를 함께 지정해야 합니다.
예를 들어 'test'@'localhost' 계정의 비밀번호를 변경하려면 alter user 구문에서도 'test'@'localhost'를 명시해야 하며, 'test'@'127.0.0.1'과는 별개의 계정으로 취급됩니다.

Principal DBA(MySQL, AWS Aurora, Oracle)
핀테크 서비스인 핀다에서 데이터베이스를 운영하고 있어요(at finda.co.kr)
Previous - 당근마켓, 위메프, Oracle Korea ACS / Fedora Kor UserGroup 운영중
Database 외에도 NoSQL , Linux , Python, Cloud, Http/PHP CGI 등에도 관심이 있습니다
purityboy83@gmail.com / admin@hoing.io
