#python #mysql #sql
Вопрос:
Когда я начал размещать свой веб-сайт, я получил функцию phpMyAdmin, с помощью которой я мог управлять базами данных для веб-сайта. Как я могу получить доступ к этим базам данных с моего удаленного компьютера?
Я попытался подключиться к одному из них с помощью Python, но я продолжаю получать сообщение об ошибке (10061 No connection could be made because the target machine actively refused it)
, и мне нужна помощь, потому что я не знаю, как ее решить.
Вот код, который я написал:
import mysql.connector
try:
mydb = mysql.connector.connect(
host='localhost',
user='someuser',
password='somepass',
database='database'
)
except Exception as e:
print(type(e))
print(e)
Комментарии:
1. Вам нужно открыть порт 3309 в брандмауэре и включить удаленных пользователей в конфигурации MySQL.
2. Вам необходимо перейти
host='localhost'
на адрес компьютера, на котором запущена база данных.3. @Barbar Удаленные пользователи включены, но открыть порт 3309? Разве это не 3306? Кроме того, как я могу найти адрес компьютера, на котором запущена база данных?
4. Вам необходимо знать IP-адрес вашего сервера базы данных, чтобы установить соединение. Это уникальный способ.
Ответ №1:
Вам не следует использовать localhost, если вы подключаетесь к удаленной базе данных, которая находится на другом сервере. Вместо этого используйте IP-адрес сервера базы данных:
import mysql.connector
try:
mydb = mysql.connector.connect(
host='11.162.174.78',
port='3306',
user='user_id',
password='user_password',
database='name_of_database'
)
except Exception as e:
print(type(e))
print(e)
Сказав это, в своем вопросе выше вы упомянули «управление базами данных для веб-сайта», для чего я бы предложил вам использовать соответствующий инструмент управления базами данных, такой как MySQL Workbench или HeidiSQL.
Комментарии:
1. Вы правы, но сам код неверен…
host="ip:port"
не будет работать, вы должны указать порт и ip-адрес в разных параметрах, например:host="ip", port="port"
, иначе он не будет подключаться к соответствующему серверу.