이시안 개발 블로그

도커로 설치한 MySQL 연결 오류 해결하기 본문

📖삽질

도커로 설치한 MySQL 연결 오류 해결하기

ICAN 2022. 6. 20. 00:18

Access denied for user '계정'@'localhost' (using password: YES) 에러 해결하기?

 


 

오늘은 도커 강의를 보고 MySQL을 로컬 대신 도커 이미지로 받아서 사용하겠다가 목표였습니다.

 

도커 MySQL 이미지 설치 및 실행

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --platform linux/amd64 mysql:8.0
  • -d : 백그라운드 실행
  • -p 3306:3306 : 포트번호 지정
  • --platform linux/amd64 : m1의 경우 작성해줘야 합니다(안 해도 무방)

도커 데스크탑

docker run 명령어를 사용하면 캐시를 확인해서 이미지가 있다면 바로 실행, 이미지가 없다면 설치한 후 실행을 합니다.

이후에는 docker start 명령어로 쉽게 사용할 수 있습니다.

 

마주친 에러

이후에 데이터그립으로 프로젝트용 DB를 추가하기 위해 연결을 시도한 순간에

 

X같은 에러

Access denied for user '계정'@'localhost' (using password: YES) 에러가 발생했습니다.

비밀번호가 틀렸거나 해당 계정에 권한을 부여하지 않는 경우 뜨는 에러인데 1234를 틀렸을 리는 없고 권한의 문제라 생각했습니다.

 

⚽ 첫 번째 헤딩

새로운 계정을 만들어 권한을 부여해줬습니다.

create user 'sian'@'%' identified by '1234';
grant all privileges on testdb.* to 'sian'@'%';
flush privileges;

그래도 안되더라구요..(사진은 미처 못 찍었습니다)

 

⚽ 두 번째 헤딩

MySQL 8.0버전 부터는 비밀번호 정책이 바뀌었다고 합니다. 때문에 비밀번호를 길게 바꾸어보았습니다.

두 번째

네 그래도 안되더라구요..

 

⚽ 세 번째 헤딩

세 번째

MySQL 버전을 stable 한 5.7 버전으로 낮춰서 해봤습니다. 안되죠?

 

이때쯤 슬슬 H2db 쓸 걸... 그냥 로컬 MySQL로 할 걸...이라는 생각이 들었어요.

 

⚽ 네 번째 헤딩

컨테이너를 날려도 안 되고, 이미지를 날려도 안 되니 도커를 날려버렸습니다.

물론 실패했습니다.

만약 도커 최신 버전 대신 다른 버전으로 설치해봤다면 여기서 끝났을 수도 있었을 것 같아요.

 

⚽ 다섯 번째 헤딩

고수들에게 도움을 청했고 한 분께서 열심히 도와주셨습니다.

  1. 비밀번호 길게 바꿔보기(두 번째 헤딩)
  2. MySQL 연결 준비가 다 되면 시도해보기
  3. MySQL 버전 변경해보기(latest, 8.0, 5.7)
  4. docker-compose 설정해보기

제 실수일까 해서 명령어도 그대로 받아서 시도해봤지만 분명 이대로 하면 되는 게 맞는 데 이게 다 해봐도 안 되니까 근본적인 해결 방법을 내주셨습니다.

 

저는 재부팅은 생각도 못했거든요.

맥북으로 넘어오고 나서 재부팅이나 종료를 해본 것은 정말 손에 꼽을 정도라서...

 

만약 재부팅으로 이게 해결된다면 민망도 하고 4시간째 삽질하고 헤딩하고 시간 날린 게 뭐가 되나 하는 생각이 들었습니다..

 

성공

ㅋㅋ

성공했습니다. 🤪🤪🤪

 

마치며

제 경우에는 도커를 설치하고 MySQL을 연결하는 과정에서 잘 모르겠는 무언가가 꼬여있었던 것 같다고 합니다.

 

만약 저와 같은 문제가 발생하신다면 먼저 재부팅을 꼭 한 번 해보세요.

저와 같은 문제가 아니더라도 에러가 발생하면 재부팅이라는 해결 방법도 있다는 것을 기억해주세요.

'📖삽질' 카테고리의 다른 글

Vue 개발도구 Memory Leak 해결하기  (0) 2022.10.15
Github Action을 사용해보자  (1) 2022.07.15
WebClient 테스트 코드 작성하기  (0) 2022.07.07
Comments