Подключение к удалённому Mysql серверу с помощью Python

Подключение через консоль к серверу:

$ ssh user@host
password: 

и подключение к базе

$ mysql -ucc70818_1 -p
Enter password: 

отрабатывает отлично. Потребовалось подключиться через python. Вот код:

from sshtunnel import SSHTunnelForwarder

server = SSHTunnelForwarder(
    'vh394.timeweb.ru',
    ssh_username='user',
    ssh_password='password',
    remote_bind_address=('127.0.0.1', 3306)
)

server.start()

connector = pymysql.connect(
    host="37.76.166.225", # мой ip (так же пробовал через 127.0.0.1, но через localhost
    # не хочет подключаться к серверу)
    port=server.local_bind_port,
    user="user",
    password="db_password",
    database="db_name",
)
server.stop()

При запуске получаю следующую ошибку:

Traceback (most recent call last):
  File "/home/kostya/.local/lib/python3.8/site-packages/pymysql/connections.py", line 613, in connect
    sock = socket.create_connection(
  File "/usr/lib/python3.8/socket.py", line 808, in create_connection
    raise err
  File "/usr/lib/python3.8/socket.py", line 796, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/kostya/PycharmProjects/my_project_/mysql_/mysql_class.py", line 89, in <module>
    connector = pymysql.connect(
  File "/home/kostya/.local/lib/python3.8/site-packages/pymysql/connections.py", line 353, in __init__
    self.connect()
  File "/home/kostya/.local/lib/python3.8/site-packages/pymysql/connections.py", line 664, in connect
    raise exc
pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '37.76.166.225' ([Errno 111] Connection refused)")

Но почему так, я не понимаю. Буду рад любой помощи. Так как это больше учебный процесс, могу скинуть пароли от сервера.


Ответы (0 шт):