下面的代碼(在不同的機器比MySQL服務器運行,在同一個局域網內),在本地使用Python3連接到MySQL數據庫和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
所以,這裏是當前工作:
- 本地連接使用192.168.0.24:3309地址DATABSE,所以我相信這個問題不是來自'權限授予'或任何登錄/密碼/端口錯誤。
- 使用http://imaginarywebsite.ddns.net/phpmyadmin通過phpmyadmin遠程連接,所以我相信問題不是來自我的DNS服務器。
這裏是我的3個問題:
- 任何想法,問題就來的呢?
- 應該使用SSH連接解決我的問題?
- 如果SSH是解決方案,是否可以通過mysql.connector使用SSH參數,因爲它似乎沒有出現在官方文檔中?
謝謝。
你覈實哪些端口/接口是MySQL服務器監聽使用命令?’netstat的 - ln | grep 3309「在服務器上,你可以看到MySQL是否只接受本地主機接口或其他接口。 – Alesito