Следующий код (бежал с другой машины, чем сервер MySQL, в пределах одной и той же локальной сети), локально подключиться к базе данных MySQL с помощью Python3 и mysql.connector работы:Подключитесь к MySQL с Python mysql.connector
import mysql.connector
cnx = mysql.connector.connect(host='192.168.0.24', database='import_test',user='user_builder', password='password***', port=3309)
Однако следующий код, чтобы удаленно подключаться к одной и той же базе данных, не работает:
import mysql.connector
cnx = mysql.connector.connect(host='http://imaginarywebsite.ddns.net', database='import_test',user='user_builder', password='password***', port=3309)
Вместо этого я получаю следующее сообщение об ошибке:
File "C:\Users\****\AppData\Roaming\Python\Python34\site-packages\mysql\connector\network.py", line 464, in open_connection
errno=2003, values=(self.get_address(), _strioerror(err)))
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on 'http://imaginarywebsite.ddns.net:3309' (11004 getaddrinfo failed)
Вот выдержка из моего файла my.cnf:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[mysqld]
innodb_buffer_pool_size=4G
innodb_log_file_size=1024M
innodb_read_io_threads=64
innodb_write_io_threads=64
innodb_io_capacity=7000
innodb_thread_concurrency=0
port = 3309
bind-address = 0.0.0.0
Итак, вот что в настоящее время работает:
- соединение локально на Databse используя 192.168.0.24:3309 адрес, поэтому я уверен, что проблема не связана с предоставлением привилегий или ошибкой входа/пароля/порта.
- Подключить удаленно через phpmyadmin с помощью http://imaginarywebsite.ddns.net/phpmyadmin, поэтому я уверен, что проблема не возникает с моего DNS-сервера.
А вот мои 3 вопроса:
- Любая идея, где проблема может исходить от?
- Должно ли использование SSH-соединения быть решением моей проблемы?
- Если SSH является решением, можно ли использовать параметры SSH через mysql.connector, поскольку он не представляется в официальной документации?
Спасибо.
ли вы проверить, на которых порты/интерфейсы является сервер MySQL прослушивает Использование команды.?“NETSTAT - ln | grep 3309 "на сервере вы можете увидеть, принимает ли MySQL только интерфейс localhost или другие интерфейсы. – Alesito