에스제이

반응형

 

MySQL 오류 **"Can't connect to MySQL server on 'localhost' (10061/2003)"**는 클라이언트가 MySQL 서버와 연결을 시도했으나 실패했음을 의미합니다. 이 문제는 서버가 실행되지 않거나 네트워크 또는 설정 문제로 인해 발생합니다. 아래에서 원인과 해결 방법을 상세히 설명합니다.

 

1. 오류의 주요 원인

1.1 MySQL 서버가 실행되지 않음

 - MySQL 서버 데몬이 실행되지 않은 상태에서 클라이언트가 연결을 시도하는 경우 발생합니다.

 

1.2 잘못된 포트 또는 호스트 설정

 - MySQL 서버가 기본 포트(3306)가 아닌 다른 포트에서 실행 중일 수 있습니다.

 - 클라이언트가 잘못된 IP 주소나 호스트명을 사용해 접속을 시도하는 경우에도 발생합니다.

 

1.3 방화벽 또는 보안 그룹 설정

 - 서버가 로컬 또는 원격 연결을 허용하지 않는 방화벽이나 보안 그룹 설정으로 인해 접속이 차단됩니다.

 

1.4 bind-address 설정 문제

 - MySQL 서버의 bind-address 설정이 127.0.0.1로 제한되어 있을 때, 로컬 이외의 IP에서 접속 시도 시 발생합니다.

 

1.5 소켓 파일 문제

 - MySQL이 유닉스 소켓 파일을 사용하는데, 해당 소켓 파일 경로가 잘못되었거나 소켓 파일이 삭제된 경우에도 발생합니다.

 

2. 문제 해결 방법

2.1 MySQL 서버 실행 상태 확인

 - MySQL 서버가 실행 중인지 확인합니다

[ LINUX ]

sudo systemctl status mysql

또는

service mysql status

 

[ WINDOW]

net start | findstr MySQL

 

2.2 포트와 호스트 설정 확인

 - MySQL 서버가 올바른 포트(기본값: 3306)에서 실행 중인지 확인합니다

netstat -tlnp | grep mysql

 

 - MySQL이 다른 포트에서 실행 중이라면 클라이언트에서 올바른 포트를 명시합니다

mysql -u username -p --host=127.0.0.1 --port=3307

 

2.3 방화벽 설정 확인 및 수정

MySQL 포트를 방화벽에서 허용합니다:

 

[ Linux(UFW)]

sudo ufw allow 3306

 

[ Linux(Firewalld) ]

sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload

 

[ Windows ]

 - 제어판 → 방화벽 → 고급 설정 → 인바운드 규칙 → 포트 추가 → TCP, 3306 허용.

 

2.4 bind-address 설정 변경

MySQL 설정 파일(my.cnf 또는 my.ini)을 수정합니다.

[ 설정 파일 경로 ]

 - Linux: /etc/mysql/my.cnf 또는 /etc/my.cnf

 - Windows: C:\ProgramData\MySQL\MySQL Server X.Y\my.ini

 - [mysqld] 섹션에 다음 항목을 확인 및 변경

bind-address = 0.0.0.0

 

변경 후 MySQL 서버를 재시작합니다

sudo systemctl restart mysql

 

2.5 소켓 파일 경로 확인

유닉스 소켓 파일 경로를 확인합니다

mysql_config --socket

 

클라이언트가 올바른 소켓 파일 경로를 사용하는지 확인합니다

mysql -u username -p --socket=/var/run/mysqld/mysqld.sock

 

2.6 MySQL 로그 확인

MySQL 서버의 오류 로그를 확인하여 추가적인 문제를 진단합니다.

일반적으로 오류 로그는 /var/log/mysql/error.log 또는 /var/log/mysqld.log에 저장됩니다

cat /var/log/mysql/error.log

 

2.7 MySQL 클라이언트 버전 확인

클라이언트와 서버 간의 버전 차이가 너무 큰 경우에도 연결 문제가 발생할 수 있습니다. MySQL 클라이언트를 최신 버전으로 업데이트하거나 서버와 동일한 버전의 클라이언트를 사용해 봅니다.

 

3. 해결방법 정리

원인 해결 방법
MySQL 서버가 실행되지 않음 MySQL 서버 상태를 확인하고 실행.
포트 또는 호스트 설정 문제 MySQL 포트(기본 3306) 확인, 클라이언트에서 올바른 포트/호스트 설정.
방화벽 또는 보안 그룹 설정 문제 MySQL 포트(3306) 허용 설정 추가.
bind-address 설정 문제 my.cnf 파일의 bind-address를 0.0.0.0 또는 원하는 IP로 변경.
소켓 파일 문제 올바른 소켓 파일 경로를 지정하거나 파일 경로를 수정.

 

이 오류는 MySQL 서버와 클라이언트의 네트워크 설정 문제로 발생하는 경우가 대부분입니다. 위 해결 방법을 차례대로 시도하면 문제를 해결할 수 있습니다. 추가 문제가 있다면, MySQL 오류 로그를 분석하는 것이 중요합니다.

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band