1963

Подключение к удалённому Mysql серверу.

1 ответ

Добрый день. Не могу подключиться к Mysql серверу. Если быть точнее, то подключение к серверу и вход в Mysql через консоль работает, но с помощью яп Python у меня не получается этого сделать. Многое перепробывал, но ничего не выходит.

Вот мой код:
 

from sshtunnel import SSHTunnelForwarder

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

server.start()

connector = pymysql.connect(
    host="37.76.166.225", #мой ip (так же пробовал через 127.0.0.1)
    port=server.local_bind_port,
    user="cc70818_1",
    password="db_password",
    database="cc70818_1",
)
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)")

 

Но почему так происходит я не понимаю, ведь с консоли всё получается. Буду рад любой помощи (помогите пожалуйста).

Ответы (1)

Александр 0
22.12.2021 23:51
Использую MySQL Connector:

pip install mysql-connector-python

Скрипт (виртуальный хостинг Ubuntu 18.04.6 LTS, Python 3.6.9):

import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="cc40000_mydb",
password="12345678",
database="cc40000_mydb"
)
cursor = db.cursor()
cursor.execute("SELECT * FROM STATS LIMIT 10")
result = cursor.fetchall()
for x in result:
print(x)

Похожие вопросы

SKY
58

Static файлы не хотят подгружаться (Django)

Здравствуйте, загрузил Django приложение по инструкции, настроил nginx. проект запускается, но static файлы не хотят подгружаться. Выдает 403 статус Инструкция по которой размещал Django https://timeweb.cloud/tutorials/django/kak-ustanovit-django-nginx-i-gunicorn-na-virtualnyj-server https://clck.ru/35Wgoj https://clck.ru/35Wgq2 https://clck.ru/35Wgr3 Сделал...
Allitone
74

Ошибка на Битрикс MySQL Query Error

С чем может быть связана следующая ошибка, и каким образом она решается? MySQL Query Error: INSERT INTO b_user_access (USER_ID, PROVIDER_ID, ACCESS_CODE) SELECT 503, 'intranet', concat(T1.ROLE , T1.ID) FROM ( SELECT DISTINCT BS2.ID ID, (case...
Настя Сукаленко
171

Не приходят сообщения на почту с выгруженного сайта :( Поддержка не может помочь

Выгрузила готовый сайт на timeweb, настроила их почту через smtp (создала у них почту и настроила, чтобы сообщения на мою почту mail приходили от их). Проверила работает ли по локальному сайту - сообщения приходят, все работает. Проверяю на выгруженном...
Ваш баланс 10 ТК
1 ТК = 1 ₽
О том, как заработать и потратить Таймкарму, читайте в этой статье
Чтобы потратить Таймкарму, зарегистрируйтесь на нашем сайте
С помощью соцсетей
У меня нет аккаунта Зарегистрироваться
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
С помощью соцсетей
У меня уже есть аккаунт Войти
Нажимая кнопку «Зарегистрироваться», я даю согласие на обработку своих персональных данных, указанных в форме регистрации.
Инструкции по восстановлению пароля высланы на Ваш адрес электронной почты.
Пожалуйста, укажите email вашего аккаунта
Войти в Комьюнити
Регистрация в Комьюнити
Восстановление пароля