以下代码(运行于与mysql服务器不同的计算机,位于同一个局域网内)使用Python3和mysql.connector在本地连接到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因此,下面是当前的工作内容:
,以下是我的三个问题:
谢谢。
发布于 2016-10-31 13:30:43
实际上,答案是使用我的服务器的全局IP地址,而不是域名,这可能是名称管理的问题。
将host='http://imaginarywebsite.ddns.net‘替换为’host=85.23.56.****‘使其正常工作。
发布于 2016-10-31 11:13:56
尝试将您的非工作示例编辑为此(主机中没有http )
import mysql.connector
cnx = mysql.connector.connect(
host='imaginarywebsite.ddns.net',
database='import_test',
user='user_builder',
password='password***',
port=3309
)发布于 2016-10-28 18:28:34
如果您在运行mysql守护进程的同一台服务器上运行PHPMyAdmin,情况如下:您的all服务器配置为接受来自所有接口的连接,但mysql配置为只接受本地连接。由于PHPMyAdmin是与mysql并置的,所以它只能进行本地连接,这也是它工作的原因,但您的代码不工作。
因此,请再次检查mysql守护进程是否配置为侦听接口。您应该在您的bind-address=0.0.0.0文件中有一个类似于mysql.cnf的行。有关更多详细信息,请参阅this answer。
https://stackoverflow.com/questions/40310511
复制相似问题