-
[AWS] mySQL 세팅클라우드컴퓨팅 2023. 1. 5. 03:22
이 글은 MySQL 8버전을 사용한다.
RPM으로 mySQL을 다운받으면 apt로 설치할때와 달리 초기 비밀번호가 자동으로 세팅된다.
초기 설정된 비밀번호를 확인해준다.
sudo cat /var/log/mysqld.log
mySQL을 실행시킨다.
mysql -uroot -p Enter password: [위의 초기 패스워드 입력]
우선 초기 설정된 복잡한 비밀번호를 변경해야 하는데, 무엇을 입력해도 다음과 같은 오류가 발생한다.
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
비밀번호를 변경하려고 해도 다음과같은 오류가 발생한다.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxx'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
비밀번호 정책에 맞지 않기 때문이다.
다른 방법을 사용한다.
SET PASSWORD FOR 'root'@'localhost' = PASSWORD("TOOR");
update user set password=PASSWORD("TOOR") where User='root';
update user set authentication_string =PASSWORD("TOOR") where User='root';
위 3가지 방법 모두 다음과 같은 오류가 발생하여 불가능 하였다.
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
우선 비밀번호 설정 강도를 확인한다.
SHOW VARIABLES LIKE 'validate_password%';
그래도 계속 비밀번호를 초기화 하라는 오류가 발생하여서 확인할 수 없었다.
You must reset your password using ALTER USER statement before executing this statement.
현재 설정된 비밀번호 정책조차 확인 할 수 없다.
따라서 우선 강도 높은 비밀번호를 강제로 설정 하도록 한다.
다음과 같은 조건을 만족하도록 설정한다.
- length는 길이를 의미한다. 8자 이상이어야 한다.
- mixed case count는 대소문자를 적어도 1회이상은 써야한다.
- 밑의 number count도 숫자를 적어도 1회 이상은 써야한다.
- 마지막의 special char count는 특수문자를 적어도 1회 이상은 써야한다.
mysql> ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx'; Query OK, 0 rows affected (0.00 sec)
우선 비밀번호 설정을 완료 했다.
비밀번호 정책을 확인한다.
mysql> SHOW VARIABLES LIKE 'validate_password%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | MEDIUM | | validate_password.special_char_count | 1 | +--------------------------------------+--------+
비밀번호 강도가 현재 MEDIUM으로 설정되어 있다.
따라서 비밀번호 강도를 LOW로 변경시킨다.
강도 LOW는 비밀번호의 길이만 충족시키면 된다.
mysql> set global validate_password.policy=LOW; Query OK, 0 rows affected (0.00 sec)
참고로 mySQL 버전에 따라 명령어가 다르다.
mysql5
mysql> set global validate_password_policy=LOW; Query OK, 0 rows affected (0.00 sec)
mysql8
mysql8에서는 "_policy"가 ".policy"로 변경되었다.
mysql> set global validate_password.policy=LOW; Query OK, 0 rows affected (0.00 sec)
이제 원래 원하던 비밀번호로 다시 변경이 가능해졌다.
mysql> ALTER user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxx'; Query OK, 0 rows affected (0.00 sec)
728x90'클라우드컴퓨팅' 카테고리의 다른 글
[AWS] ubuntu ssh연결하기 (0) 2023.02.04 [AWS] mySQL 워크벤치 연결 (0) 2023.01.05 [AWS] MySQL설치 (2) 2023.01.04 RDS를 써야 하나요? EC2에 설치하면 안되나요? (0) 2023.01.04 [AWS] SSH 클라이언트 (0) 2022.12.27