성장, 그리고 노력

부족하더라도 어제보다 더 잘해지자. 노력은 절대 배신하지 않는다.

일상 & 기타

Access denied for user 'root'@'localhost' 해결하기

제이콥(JACOB) 2019. 12. 29. 17:51

 현재 사용 중인 맥북에서 항상 DB는 AWS의 lightsail 서비스나 RDS 서비스를 사용해 왔다. 

이유는 밖에서 공부할 때는 맥북으로 해서 상관없지만, 집에서는 데스크톱으로 공부를 할 때가 있어서 애초에 클라우드 서비스를 이용해 왔다. 

 이번에도 그렇게 할려고 했으나, 돈이 없는 관계로 Local에 MySQL을 설치해 봤다. 근데 진짜 스트레스... 시킨 대로 해도 내 맥북은 계속 못한다고 징징거렸다. 정말 뭘 해도!! 안된다고만 한다. 도커 이미지 띄웠다가 지웠다가 홈브루로 설치했다가 지웠다가... 그냥 로컬에 파일을 다운로드하여서 설치했다가 지웠다가.. 그래도 똑같은 말만 나를 반겨 줬다.

Access denied for user 'root'@'localhost'

엎친데 덮친격으로 aws에서 사용하지도 않고 있는 부분에 대해서 돈이 나가서 또 짜증..

교훈: 인스턴스 종료시에는 VPC 관련 부분도 모두 체크해서 삭제하자.

 하아.. 기존에 사용했던 4개의 인스턴스를 종료하고 S3도 잘 삭제한 거 같아서 안심했지만, 저런 복병이 있을 줄이야.. 저것도 2시간 삽질한 거 같다. 사이드 프로젝트 하나 해보려고 별걸 다한다. 여하튼 모두 해결했다. AWS는 몰랐던 부분이라 해결 방법이 따로 있는 건 아니고 저 부분 찾아서 모두 삭제해 주면 된다. 어려운 건 아니니 패스!


ERROR 1045 (28000): Access denied for user 'root'@'localhost' 해결방법

일단 깔끔하게 다 지우고 brew를 통해 설치해 주자.

(환경 변수 부분을 알아서 해결해 줘서 뭘 설치하건 편한다.)

> brew install mysql@5.7

버전을 제외하면 최신 버전을 받는다. 아직 8.x 이상을 사용하는 곳을 잘 보지 못해서, 제일 많이 사용한다는 5.7로 받겠다.

어차피 제목에 있는 오류가 발생한 상태라면 일반적인 명령어는 뭘 치건 삽질이니, 그냥 바로 해결하자.

> sudo mysqld --initialize --user=user-name // 복붙하기 전에 아래를 읽어보자! 꼭!

user-name 부분을 본인이 사용하고 있는 mac에서 사용자 이름을 적는다. 모른다면 빨간 네모박스 친 부분 클릭하면 나오는 이름이다.

관리자 위에 되있는 저 이름!

user-name을 바꾸고 명령어를 입력했다면 분명 또 에러 난척을 할 것이다. 

하지만, 기죽지 말고 다음 명령어를 입력하자.

> mysql.server start
// Starting MySQL
// SUCCESS!

평생되지 않을 거 같던 저 명령어에서 SUCCESS! 가 나왔다면 성공한 거다. 이제 평범하게 해 보면 된다.

> mysql_secure_installation

암호 설정... 얼마나 설정해 보고 싶던 암호인지.. 눈물이 난다.

여러가지 암호 설정에 필요한 것들을 묻고 입력하게 한다. 혹시 영어 해석이 안 되는 안타까운 상황이라면 다른 블로그 참고하거나 번역기를 돌리면 다 해결된다. 이거까지 모두 진행했다면!

> mysql -uroot -p

실행이 매우 잘 된다...^^

혹시나 삽질 중이라면 꼭 도움이 됐으면 좋겠다. 

삽질 전이라면 AWS의 Lightsail을 이용하자. 가장 낮은 데이터베이스 플랜이 한달에 15달러인데, 15달러 이상의 정신 건강을 지킬 수 있다. 

참고로 가장 낮은 플랜의 경우 메모리가 1gb인데, 메모리 1gb당 커넥션 풀을 65n+1로 계산하면 된다. 즉 가장 낮은 플랜은 65개의 커넥션 풀을 사용할 수 있는 것이다. +1은 마스터를 위한 부분이다. 커넥션 풀이 꽉 차서 마스터도 접근할 수 없다는 그것만큼 웃긴 건 없기 때문에 저렇게 설정해 놓은 거 같다. 

반응형