centos에 mysql을 설치한 후 가장 먼저 해야할 일은 root계정의 비밀번호 변경하기
# grep 'password' /var/log/mysqld.log
맨 오른쪽에 특수기호 들어간 문자가 암호. 그대로 복사
mysql -uroot -p
위 코드 입력하면 enter password가 뜬다.
아까 복사한 압호 입력.
이제 암호를 재설정해야 한다.
alter user 'root@localhost' identified by '1234';
그러나 아래처럼 에러가 뜬다.
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
비밀번호 정책에 안맞단 의미.
또는 alter 로 변경을 할 경우
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
처럼 에러가 뜰 수 있다. 이럴땐
set password = password('1234');
로 써준다.
show variables like 'validate_password%';
문자 길이가 8글자, 숫자 있어야 한고, 특수문자도 1개 이상 있어야하는 정책.
저 MEDIUM을 LOW로 바꿔서 정책을 낮춘다.
set global validate_password_policy=LOW;
단 위 코드는 mysql을 재시작하면 다시 MEDIUM으로 초기화 된다.
다시 위에 있는 비밀번호 변경 코드를 실행한다.
만약 그래도 똑같은 에러가 뜬다면
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
정책 설정 뿐 아니라 validate_password_length가 8자리라서 그럴 수 있다.
set global validate_password_length = 4;
이렇게 해서 암호 길이 설정을 4자리로 변경할 수 있다.
다시 암호 설정을 하면 정상적으로 변경된다.
비밀번호 설정 후 정상 확인.
mysql> set password = password('1234');
Query OK, 0 rows affected, 1 warning (0.01 sec)
이제 exit 로 mysql을 나간다. 그다음 다시 mysql 로그인.
mysql -uroot -p
정상적으로 로그인 된다.
마지막으로 저장
flush privileges;