ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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

    댓글

Designed by Tistory.