[MySQL] Access denied for user ‘root’@’localhost’
배경 :
MariaDB와 MySQL 둘 다 사용하여 link, unlink 하며 사용
MySQL 도 버전에 따라 5.7, 8 변경해가며 사용
갑자기 MySQL 서버에 접속할 때 접근 권한이 뜸
삭제 후 재설치 반복했지만 해결 안됨.
에러 메시지 :
해결 :
/opt/homebrew/var/mysql 삭제 후, brew postinstall 해주니 해결되었다.
brew info mysql
mysql_secure_installation
을 새로 해주고 root 비밀번호를 설정해준 후 실행하니 잘 접속됐다.
원인 :
처음에는 계속 락 걸렸다고 로그에 나왔다. 근데 PID 다 죽여도 해결이 안됐다.
원인은 경로 문제인 걸로 추정된다.
m1이라서 후자를 삭제하고 postinstall 하니 해결되었다.
시도했던 방법 :
1️⃣ 첫 번째 시도
현재 실행중인 MySQL PID 모두 kill
명령어로 남아있는 mysql 서비스 확인하고 kill 명령으로 모두 죽임
남아있는 mysql 관련 디렉토리 모두 삭제
mysql 재설치 후 safe모드로 mysql 실행
mysql 접속 후 user password 변경
2️⃣ 두 번째 시도
brew로 mysql설치 후 /usr/local/var/mysql/ 폴더가 생성되지 않아 발생한 문제라고 했다.
3️⃣ 세 번째 시도
MySQL 비밀번호 재설정
비밀번호를 재설정 해주었지만, 계속해서 같은 에러 메세지가 떴다.
Ref
https://it-mesung.tistory.com/135
여기랑 두 번째 시도에서 힌트를 많이 얻었다.
이 부분을 실행하려고 해도, 아무리 뒤져도 /usr/local/mysql/ 경로가 없어서 혹시나 설치 경로 문제가 아닐까 생각했다.
그리고 그게 맞았다..
0️⃣ 옛날에 했던 시도 1
회고 :
위 과정은 하루만에 진행됐지만, 실상 굉장히 오랫동안 원인을 찾지 못해 해결하고 있지 못한 에러였다.
MySQL 설정 경로문제였다.
별의별 짓은 다 한 것 같다. 지금 생각해보면 간단한데, 왜 그렇게 해결하기가 어려웠는지 모르겠다. 다음부터는 에러 메세지를 더 잘 읽고 원인 및 문제가 뭔지 지금보다 더 논리적으로 접근해야겠다. 이번에는 영어도 그렇고 감으로만 이렇겠다 저렇겠다 시도해보기만 하고, 원리를 꼼꼼히 따져보지 못한 것도 있는 것 같다.
문제 해결 과정도 잘 문서화 해놓아야겠다.
Last updated