Access denied for user ‘root’@’localhost’ (using password yes) MySQL
MySQL 사용 시 root 계정 비밀번호를 잃어버렸을 때 당혹스러워 이리저리 검색을 하다가 문제를 하결하였다.
해당 내용은 다음 링크와 같다.
https://bobcares.com/blog/access-denied-for-user-rootlocalhost-using-password-yes-mysql/
- mysql 서비스를 중지한다.
sudo systemctl stop mysqld - my.cnf 파일을 수정한다. (나의 경우 파일 경로 : /etc/my.cnf)
파일을 찾을 수 없을 경우 sudo find / -name my.cnf 명령어로 파일을 찾는다. - my.cnf 파일을 열어 [mysqld] 섹션 하단에 skip-grant-tables 를 추가한다.
해당 옵션을 추가하면 권한을 확인하지 않고 로그인이 가능해진다. - mysql 서비스를 시작한다.
sudo systemctl start mysqld - mysql에 로그인한다.
mysql -u root - 권한 테이블을 reload 시켜 바로 적용시킨다.
flush privileges; - root 계정에 비밀번호를 수정한다.
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘new_password’; - 수정한 권한 정보를 바로 적용시킨다.
flush privileges; - my.cnf 파일에 추가했던 skip-grant-tables 옵션을 삭제한다.
- mysql 서비스를 재시작 시킨다.
sudo systemctl restart mysqld