MySQL "Cannot Connect to Database Server" 해결

Jang990·2023년 3월 4일
1
post-thumbnail

제가 해결한 방법만 빠르게 보시고 싶다면 가장 밑에 ✅ 해결한 방법을 보시면 됩니다.

오류 상황

3306포트에 비밀번호를 까먹어서 MySQL 버전도 업그레이드할 겸해서 MySQL을 완전 삭제한 뒤에 8.0버전으로 재설치했다.

그리고 정상적으로 11월 2일에 설치해서 11월 6일까지 사용하다가 오늘보니 아래와 같은 메시지와 함께 접근이 안된다.


🤔 시도한 방법 1 - cmd 접근

cmd에 mysql 명령어를 입력했을 때 명령어를 알지 못한다.
완전 삭제를 하면서 환경 변수가 같이 삭제가 된 것 같다.

다음과 같이 MySQL이 설치되어 있는 bin 폴더를 환경 변수에 추가해준다.

C:\Program Files\MySQL\MySQL Server 8.0\bin

그 후 cmd에서 MySQL에 로그인해본다.

mysql -u root -p

-- 전에 설정한 비밀번호 입력

-- 전에 생성한 DB인 InhaTcES 사용
use InhaTcES;
-- 생성되어 있는 테이블 조회
show tables;

현재 MySQL 자체는 cmd에서는 정상적으로 접근해서 DB의 내용을 확인할 수 있었다.

🤔 시도한 방법 2 - cmd 접근 with IP

다음과 같이 포트와 Localhost IP를 지정해서 접근해봤다.

mysql -u root -p -h 127.0.0.1 -P 3306 

-- 비밀번호는 아까와 같이 전에 설정한 비밀번호 입력

-- 에러발생
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

비밀번호가 다르다는 것 같은데, 이전에 mysql -u root -p로 접근할 때와 같은 비밀번호를 사용했다.

다시 mysql -u root -p로 접근해서 혹시 포트가 다른가해서 포트를 확인해 봤다.

mysql -u root -p

-- 포트 확인
show global variables like 'PORT'

--3306으로 확인되었다.

포트는 이상이 없는듯 하다.

🤔 시도한 방법 3 - bind-address 설정

오류 해결 관련 글을 찾아보면서 "bind-address는 서버가 localhost에 연결만 허용하도록 구성되었을 때 설정한다"고 알게 되었다. 나의 경우는 localhost에서 요청을 보내는 경우이기 때문에 상관이 없을 것 같다고 생각했다.

관련 글을 찾아보면서 https://dhan-description.tistory.com/84 글과 같이 bind-address를 설정해서 해결한 경우도 있어서 해당 방법을 시도해 보았다.

먼저 서비스로 들어간다

MySQL을 찾아서 중지한다.

MySQL이 설치된 폴더로 이동한다.(ex - C:\ProgramData\MySQL\MySQL Server 8.0로 이동)
-- 여기서 주의할 점은 ProgramData로 들어가야 한다. Program Files로 들어가면 안된다.

my.ini 열기 
- 관리자 권한으로 실행을 해야한다.
 - 메모장으로 열고 싶다면 관리자권한으로 메모장을 열고 우측 상단 열기로 열자

다음 설정을 추가한다.
bind-address=127.0.0.1

서비스에 들어가서 MySQL을 시작한다.

설정을하고 Workbench로 똑같이 접근을 해도 안된다.


✅ 해결한 방법

일단 리소스 모니터에 들어가서 MySQL 포트를 사용하는 프로세스를 확인해보자.

window키 + R 누르기
resmon.exe 입력 후 확인

나의 경우 이 부분에서 문제를 확인할 수 있었다.
위와 같이 리소스 모니터에 들어가서 네트워크 탭에서 MySQL이 사용하는 3306 포트를 확인해 봤는데 아래와 같이 3306 포트를 여러 mysql이 사용하고 있었다.


작업 관리자로 들어가서 mysql에 관한 프로세스를 확인해 봤다.

위와 같이 MySQL이 여러개가 실행되는 것을 확인했다. 해당 exe의 파일 폴더로 들어가보니 다음과 같았다.

 아주 예전에 설치한 기억이 있는 Bitnami 위치
C:\Bitnami\wampstack-8.0.2-0\...
 내가 설치한 MySQL 위치
C:\Program Files\MySQL\MySQL Server 8.0\...

해당 Bitnami의 mysql 설정파일인 my.ini 파일을 확인해 봤는데 3306포트를 사용하는 것을 확인했다.

일단 해당 포트를 3307로 포트를 변경했다. 나중에 Bitnami는 완전 삭제를 해야할 것 같다.

C:\Bitnami\wampstack-8.0.2-0\mysql\my.ini 내용 중 일부

...

port=3307

...

이제 다시 Workbench를 실행해서 정상 작동을 확인했다.

원인은 두가지 MySQl이 같은 포트를 사용하면서 발생한 문제인 것 같다.
충돌이 바로 나지 않고 약 일주일을 어떻게 쓴건지 의문이다.

출처

https://dhan-description.tistory.com/84

https://stackoverflow.com/questions/7864276/cannot-connect-to-database-server-mysql-workbench/73968917#73968917

https://velog.io/@mong-head/MySQL-Port-%EC%B6%A9%EB%8F%8C-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0

profile
공부한 내용을 적지 말고 이해한 내용을 설명하자

0개의 댓글