개발환경
- Mac OS
- homebrew로 mysql 설치
- mysql 버전: 8.0.16
비밀번호 초기화 및 변경 과정
1,2,3,4,8번을 순서대로 적용하면 된다!
아래 과정들은 내가 실수하여 수정하는 과정이 포함되어 있다.
1. mysql bin 파일이 있는 폴더로 이동한다.
보통은 /usr/local/mysql/bin 의 경로에 파일이 있지만
homebrew로 mysql을 설치했다면 경로가 조금 달라진다.
/usr/local/opt/mysql/bin로 이동한다.
2. mysql 데몬을 종료한다.
만약 켜져있다면 mysql.server stop 으로 종료시킨다.
3. 비밀번호를 타이핑하지 않아도 mysql에 접속할 수 있는 모드로 접속한다.
mysqld_safe --skip-grant-tables &
4. mysql에 비밀번호 없이 접속한다.
mysql -u root
5. 비밀번호 초기화
UPDATE mysql.user SET authentication_string='[변경할 비밀번호]' WHERE user='root';
위의 명령문은 Mysql 버전이 8.0.15 이상일때이다!
그 이하의 버전은 따로 구글링을 더 해봐야할 것 같다.
초기화가 성공적으로 완료된다면
flush privileges;
를 통해 권한을 적용해준다.
그런데,
Mysql을 나간 뒤 다시 접속하면 Access Denied가 되었다는 에러가 난다...........뭐야???
구글링을 해본 결과, 비밀번호가 암호화되지 않고 db에 저장되어있기 때문이랍니다...
SELECT authentication_string FROM user;을 통해 암호화 되지않은 상태를 확인할 수 있다.(use mysql;을 통해 mysql db를 선택한 뒤!)
6. 다시 접속하여, mysql db 사용하기
use mysql;을 통해 mysql db 사용하기
7. root 계정 비밀번호 null로 바꾸기
UPDATE user SET authentication_string=null WHERE user='root';
flush privileges;
8. mysql을 나간 뒤 다시 접속하여 비밀번호 변경하기
exit;
mysql -u root;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '변경할 패스워드';
또는
ALTER USER 대상유저@'%' IDENTIFIED WITH mysql_native_password BY '새비밀번호';
SELECT authentication_string FROM user WHERE user='root';
를 통해 암호화가 제대로 되었는지 확인 할 수 있다.
'IT 유용한 정보' 카테고리의 다른 글
mysql 참고 링크 목록 (0) | 2021.08.14 |
---|---|
MySQL 8.x 설치 후 Sequal Pro 접속 시 Authentication plugin 'caching_sha2_password' cannot be loaded 에러 해결 (0) | 2021.08.14 |
이클립스에 세로줄 표시될 때, 제거하는 방법(참고 링크) (0) | 2021.08.12 |
vscode를 여러 작업 환경에서 같은 extension을 사용하는 방법(vscode 연동하는 방법) 참고 링크 (0) | 2021.08.11 |
[ SSL ] SSL(Secure Socket Layer_보안인증서, 보안 프로토콜) 이란? (0) | 2021.08.07 |