Computer Science/Database

pymysql 2003| pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on (timed out)")

토마토. 2022. 1. 4. 11:28
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on (timed out)")

에러 전문은 다음과 같았다. 

Traceback (most recent call last):
  File "C:\Users\enkee\AppData\Local\Programs\Python\Python310\lib\site-packages\pymysql\connections.py", line 613, in connect
    sock = socket.create_connection(
  File "C:\Users\enkee\AppData\Local\Programs\Python\Python310\lib\socket.py", line 845, in create_connection
    raise err
  File "C:\Users\enkee\AppData\Local\Programs\Python\Python310\lib\socket.py", line 833, in create_connection
    sock.connect(sa)
TimeoutError: timed out

During handling of the above exception, another 
exception occurred:

Traceback (most recent call last):
  File " ", line 58, in <module>
    conn = pymysql.connect(host=ip, port=3306, user=' ', password=' ',
  File "C:\Users\enkee\AppData\Local\Programs\Python\Python310\lib\site-packages\pymysql\connections.py", line 353, in __init__
    self.connect()
  File "C:\Users\enkee\AppData\Local\Programs\Python\Python310\lib\site-packages\pymysql\connections.py", line 664, in connect
    raise exc
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on ' .iptime.org' (timed out)")

일단은 서버가 서로 통신을 하지 못한다는 문제가 발생한 것이고, 

문제가 내 측(클라이언트)에 있는 것인지, 서버 측(DB 노트북)에 있는 것인지 확인하여야 한다. 

 

[1] 서버 문제

 

- pymysql 3306 포트가 열려있는가? 

방법 1. telnet 사용 => telnet <ip> <port>

해당 서버에 저 포트가 열려 있는지 간단히 확인 가능함

telnet iptime.org 3306
연결 대상 iptime.org...호스트에 연결할 수 없습니다. 포트 3306: 연결하지 못했습니다.

-> 막혀있는 것으로 보임

 

방법 2. echo > /dev/tcp/ip/port 사용

$ echo > /dev/tcp/.iptime.org/3306
bash: connect: Connection timed out
bash: /dev/tcp/iptime.org/3306: Connection timed out

 

방법 3. nmap 포트 스캐닝

nmap iptime.org 3306 -Pn
Starting Nmap 7.92 ( https://nmap.org ) at 2022-01-04 11:04 대한민국 표준시
Failed to resolve "3306".
Failed to resolve "3306".

Nmap scan report for iptime.org (211.104.178.94)
Host is up (0.095s latency).
Not shown: 997 filtered tcp ports (no-response), 2 filtered tcp ports (host-unreach)
PORT    STATE  SERVICE
113/tcp closed ident             
Failed to resolve "3306".                                                               
Nmap done: 1 IP address (1 host up) scanned in 119.71 seconds

 

음.. 외부 서버가 죽어있는 것 같다. 

 

 

참고

[Linux] 기본 설정으로 포트 확인하기 - 낮코밤코 (owin2828.github.io)

mysql 외부 접속이 안되는 경우 (tistory.com)

[Ubuntu] Telnel 텔넷 unable to connect to remote host connection refused 오류 해결 : 네이버 블로그 (naver.com)

MySQL 외부접속 가능하게 하기 (tistory.com)

03) MySQL - AI 자동 투자 봇 만들기, 노트북 하나로 월급을 두 배 불리는 비법 wiki (wikidocs.net)