Change root password on MySQL 8

이전 버젼까지는 mysql.user테이블의 레코드를 수정해서 바로 password를 변경할수가 있었는데요 8버젼부터는 그게 허용이 안됩니다. 아마도 password string을 좀더 복잡하게 하고 비밀번호 암호화 알고리즘을 보강해서 해킹에 대한 보안을 강화하기 위한 대책인것으로 보입니다.

일단 root로 mysql에 접속해서 root password를 비워줍니다.

UPDATE mysql.user SET authentication_string=null WHERE User='root';

이 상태에서 변경된 내용을 적용하고 mysql을 종료합니다.

FLUSH PRIVILEGES;
exit

다시 mysql로 들어갈때는 password를 입력하지 않아도됩니다.

mysql -u root -p

이제 새로운 password를 입력할 차례입니다. 아래 명령어를 이용해서 password를 입력해주세요.

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '비밀번호';

여기서 비밀번호에 root라던가 pass같이 쉬운걸 넣으면 Your password does not satisfy the current policy requirements라면서 거절해요. 대문자몇개 소문자 몇개 숫자랑 특수기호등 물론 길이도 보겠죠 password답게 만들어서 넣어야 변경해줍니다. 명령어가 문제 없이 실행이 되면 나갔다가 해당 password를 치고 다시 들어와 보는것도 잊지마세요. 그럼 다음에 더 유익한 정보로 또 뵐게요. 안녕.