UPDATE 문을 이용해 MySQL 사용자 비밀번호를 변경하려면 mysql 데이터베이스의 user 테이블을 직접 수정해야 합니다. 기본적인 문법은 다음과 같습니다.
문법(Syntax)
USE mysql;
UPDATE user
SET authentication_string = PASSWORD('new_password')
WHERE user = user_name AND host = host_name;
앞부분의 두 구문(USE mysql;)은 항상 공통적으로 사용됩니다. MySQL 사용자 비밀번호를 변경하려면 먼저 mysql 데이터베이스를 선택한 뒤, 그 안의 user 테이블을 업데이트해야 하기 때문입니다.
- New_password : MySQL 사용자에게 새로 설정하려는 비밀번호입니다.
- User_name : 비밀번호를 변경할 현재 사용자의 계정 이름입니다.
- Host_name : 해당 사용자 계정이 속한 호스트 이름입니다.
예제(Example)
예를 들어 user@localhost 계정의 비밀번호를 'tutorials'로 변경하고 싶다면 아래와 같이 실행하면 됩니다.
USE mysql;
UPDATE user
SET authentication_string = PASSWORD('tutorials')
WHERE user = 'user' AND
host = 'localhost';
FLUSH PRIVILEGES;
참고 사항
마지막의 FLUSH PRIVILEGES; 구문은 권한 관련 정보를 메모리에 다시 로드하여 변경된 비밀번호가 즉시 적용되도록 하는 역할을 합니다. 또한 MySQL 5.7 버전부터는 PASSWORD() 함수가 지원 중단(deprecated)되었으며, MySQL 8.0 이상에서는 보안상의 이유로 UPDATE 문 대신 ALTER USER 'user'@'localhost' IDENTIFIED BY 'tutorials'; 구문을 사용하는 것이 권장됩니다.