Доступ к базе данных SQL с удаленного компьютера

#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" , иначе он не будет подключаться к соответствующему серверу.