pymsql не подключается к базе данных

#python #mysql #sql #pymysql

#python #mysql #sql #pymysql

Вопрос:

Я пытаюсь создать программное обеспечение, которое работает на большом количестве компьютеров людей, подключаясь к серверу входа. Я настроил сервер MSQL с использованием 24hosting и добавил базу данных. Затем я попытался получить доступ к базе данных с помощью python, но он выдает ошибку «Не удалось установить соединение, поскольку целевая машина активно отказалась от него».

Мне нужно, чтобы все, кто загружает эту программу, могли подключиться, а не только к этому компьютеру.

Вероятно, это как-то связано с моим сервером, а не с кодом, но я все равно опубликую код ниже.

 from os import getenv
import pymysql

server = getenv("31.220.17.13")
user = getenv("shutdow1_user")
password = getenv("DSAEWQ321")

conn = pymysql.connect(server, user , password, "tempdp")

cur = conn.cursor()

cur.execute("SELECT Host,User FROM user")
cur.close()
conn.close()
 

Ответ №1:

Попробуйте запустить tcpdump или tshark host 31.220.17.13, чтобы посмотреть, что именно произойдет. Скорее всего, TCP-соединение с портом mysql фильтруется (вы увидите первые ответы при отправке SYN), или если вы видите, что соединение закрыто удаленной стороной после установления сеанса TCP — это будет признаком того, что удаленный сервер mysql не настроен должным образом для приема клиентского соединения для вашего IP / имени пользователя / пароля/база данных.

Комментарии:

1. Спасибо за помощь. Как бы я настроил свой SQL-сервер, чтобы по существу разрешить любому доступ к базе данных, а не добавлять их вручную?

2. я не уверен, что вы действительно хотите предоставить всем доступ к базе данных… Обычная практика заключается в предоставлении ограниченного доступа для определенной учетной записи пользователя и использовании его в сценариях, к которым ваши пользователи также имеют доступ (типичный сценарий — сценарий на веб-сервере, использующий учетные данные пользователя db с разрешениями только для чтения и / или добавления). В любом случае, это выходит за рамки темы python, я предлагаю прочитать документы MySQL здесь dev.mysql.com/doc/refman/5.6/en/account-management-sql.html .