Подключение к удалённому 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)")
Но почему так, я не понимаю. Буду рад любой помощи. Так как это больше учебный процесс, могу скинуть пароли от сервера.