使用Python MySQL.conn远程连接到MySQL

2024-04-25 11:42:57 发布

您现在位置:Python中文网/ 问答频道 /正文

使用Python3和mysql.connector本地连接到mysql数据库的以下代码(运行于同一局域网内的mysql服务器之外的另一台计算机上):

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地址本地连接到数据库,因此我确信问题不是来自“权限授予”或任何登录/密码/端口错误。
  • 使用http://imaginarywebsite.ddns.net/phpmyadmin通过phpmyadmin远程连接,因此我确信问题不是来自我的DNS服务器。

下面是我的三个问题:

  1. 知道问题从哪里来吗?
  2. 使用SSH连接是不是应该解决我的问题?
  3. 如果SSH是解决方案,那么是否可以通过mysql.connector使用SSH参数,因为官方文档中似乎没有提供这些参数?

谢谢。


Tags: ioimport数据库httpconnectornetportconnect