개발한 웹사이트를 배포하기 위해서 서버 설정 과정 중 MySQL 비밀번호 변경 방법을 포스팅합니다.
(사용된 운영체제와 MySQL 버전은 다음과 같습니다.)
CentOS 7.2 with MySQL 5.7 (64-bit)
* 비밀번호 변경 방법 및 명령문은 버전에 따라 다를 수 있습니다.
mysql -u root -p 명령어로 실행합니다.
MySQL을 가장 처음으로 실행하게 되면 비밀번호가 설정되어 있지 않기 때문에 Enter Password: 에서 엔터만 입력하는 것으로 접속을 할 수 있습니다.
use mysql;
비밀번호 변경을 위해서는 mysql 데이터베이스를 사용해야 합니다.
(Database changed 를 통해 요청이 적용된 것을 확인할 수 있습니다.)
다음으로 select 문을 통해 설정된 비밀번호를 확인합니다.
select host, user, password from user;
결과로 ERROR 1054 (42522) : Unknown column 'password' in 'field list' 라는 에러 메세지를 확인할 수 있는데요.
이유는 mysql 버전에 따라 필드 명이 password 가 아니라 authentication_string 으로 사용되는 경우도 있기 때문입니다.
select host, user, authentication_string from user;
필드 명을 authentication_string 입력시 select 문의 결과를 확인할 수 있습니다.
(mysql 5.x 버전에서는 password 또는 authentication_string 이 사용되고 이는 버전에 따라 다를 수 있습니다.)
저는 기존에 비밀번호 설정을 마친 상태라 authentication_string 에 암호화된 비밀번호 값을 확인할 수 있지만 초기 상태라면 localhost root 계정에 비밀번호가 설정되지 않은 것을 확인할 수 있습니다.
(비밀번호가 설정되지 않았기 때문에 처음에 비밀번호 없이 접속이 가능했던 것입니다.)
show variables like 'validate_password%';
비밀번호 변경 전 해당 명령어를 통해 암호 설정 정책(Password policy) 암호 자릿수 제한, 특수 분자 포함 여부, 숫자 포함 여부, 길이 등이 설정된 것을 확인할 수 있습니다.
update user set authentication_string=password('비밀번호') where user='root';
(필드 명이 password 인 경우 authentication_string이 아닌 password=password('비밀번호') 로 명령어를 입력해야 합니다.)
update문 이후 최종적으로 flush privileges; 명령어까지 입력해주면 비밀번호 변경 사항이 저장됩니다.
quit 명령어로 mysql을 종료하고 변경한 비밀번호로 다시 접속하게 되면 비밀번호가 변경된 것을 확인할 수 있습니다.
'Programming > MySQL' 카테고리의 다른 글
MySQL JSON 데이터 타입에 활용되는 함수 정리 (0) | 2022.10.29 |
---|---|
MySQL 계정 생성 및 권한 부여 방법 정리 (0) | 2022.10.27 |
MySQL, MariaDB 데이터베이스 백업 및 복구하는 방법 (0) | 2022.10.24 |
MySQL 프로시저 기본적인 사용법, insert 더미데이터 넣기 (0) | 2022.02.17 |
MySQL 한글 물음표, 한글 깨짐 해결 방법 (mysql 5.6) (0) | 2021.07.31 |