-
MySQL.3 루트비밀번호 초기화MySQL 2021. 1. 3. 12:26728x90
하루에 한번 반드시 내 로컬 DB가 초기화되는 현상이 4일간 지속되었다.
이거 설마 로컬 DB 털릴게 아닐까하고 공유기 비밀번호도 바꿔보고 뻘짓을 열심히하던 도중
순간 유닛테스트 진행 하고 나서 테이블이 새로 생성되는거을 발견하여 확인해보니
유닛테스트 클래스의 종속 관계를 잘못설정해서 실제 DB에 접근하고 있었던 것이었다!!!!
이건 추후 정리해보면 재밌을것같다.
따라서 MySQL root@localhost 비밀번호를 변경하려 한다
무수히 많은 방법이 나오지만 여기서 정리하는 방법이 정답이라 할 수 없지만
아래 방법으로 정상적으로 해싱까지 완벽히 마무리되어 저장되는것을 확인 할 수 있었다.
참고로 루트 비밀번호를 초기화하는 과정이 있지만
나는 비밀번호를 잊어버린것이 아니기에 mysql 접속은 문제가 없었다.
먼저 나의 로컬 최상단/ 위치에서 진행하자
where is mysql
나의 설치 위치이다
/usr/local/bin/mysql
mysql 중단
/usr/local/bin/mysql.server stop
mysql 접속시 비밀번호 과정 스킵
/usr/local/bin/mysql.server start --skip-grant-tables
접속
mysql -u root or mysql -u root -p
mysql database 접근
USE mysql;
root 유저 비밀번호를 NULL로 변경한다.
비밀번호를 NULL로 변경하는 이유는 MySQL 서버를 정상적으로 다시 실행했을 때(승인 생략 옵션 없이) 비밀번호 없이 바로 접속하기 위함이다. 비밀번호를 설정하면 위에서 살펴본 것처럼 해쉬화를 하지 않으므로 오류가 뜬다. --skip-grant-tables와 같이 승인 생략 옵션을 통해 MySQL을 실행하면 ALTER 명령어를 사용할 수 없는 명령어라는 오류로 인해 비밀번호를 변경할 수 없다.
UPDATE user SET authentication_string=null WHERE User='root';
변경된 권한을 설정한다.
FLUSH PRIVILEGES;
exit;
접속
mysql -u root -p or mysql -u root
비밀번호를 변경한다.
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '1234';
exit;
위와같이 비밀번호를 변경한 후 DB에 데이터를 넣기 위해 아래와 같은 에러가 발견되었다.
구글링해보면 계속 비밀번호를 바꾸라는 뜻만 나와서
직접 mysql DB에 접근하여 해결 할 수 있었다.
아래와 같이 직접 mysql 에 접근하여 아래 4개의 user에 대한 모든 비밀번호를 바꿔주니 해결되었다!
user 이름만 변경하여 위 과정을 반복해주면 된다
mysql.infoschema
mysql.session
root
728x90'MySQL' 카테고리의 다른 글
MySQL.2 1054 unknown column_error (0) 2020.12.05 MySQL.1 Database 및 Table 삭제하기 (0) 2020.12.03