mysql.connector访问本地网络中的远程数据库python 3

zqry0prt  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(295)

我使用mysql.connector python库对本地sql server数据库进行更改,使用:

from __future__ import print_function
import mysql.connector as kk

cnx = kk.connect(user='root', password='password123',
                              host='localhost',
                              database='db')
cursor = cnx.cursor(buffered=True)
sql = "DELETE FROM examples WHERE id = 4"
number_of_rows = cursor.execute(sql)
cnx.commit()   
cnx.close()

这很好,但是当我尝试相同的代码时,只对“host”参数做了一个更改,比如,

host='xxx.xxx.xxx.xxx'

(如果ip是连接到我的本地网络的服务器的ip),则不会更新该服务器中的特定数据库。
引发的错误类似于:

mysql.connector.errors.DatabaseError: 2003 (HY000): Can't connect to MySQL server on 'xx.xxx.x.xx' (10060)

为什么这样不行?

bz4sfanl

bz4sfanl1#

检查用于连接到远程主机上的数据库的数据库用户是否具有正确的访问权限和特权。
您可以从命令行使用以下命令来测试:

mysql -u root -p password123 - h xxx.xxx.xxx.xxx db

如果不起作用,则按以下步骤进行调试:
ping ...。如果主机可以访问,请继续下一步,否则此ip将被阻止、不可用或不正确。仔细检查ip并检查它们是否在同一网络上。
检查mysqld是否在主机上运行。服务mysqld重新启动。如果是,请继续下一步,如果不是,请启动mysqld。如果它不想启动,请安装它,启动服务并设置数据库。
telnet特定端口以查看端口是否被阻止。telnet ... 3306。如果可行,请继续下一步。如果这不起作用,请检查iptables并检查远程主机上的端口是否打开。
向主机上的mysql添加用户:https://dev.mysql.com/doc/refman/8.0/en/adding-users.html 重新启动mysqld并重试上面的命令。

4nkexdtk

4nkexdtk2#

首先,您必须检查您的本地ip是否可以访问您的远程服务器(检查您的服务器上是否有ip限制),然后检查您的mysql数据库是否使用默认端口,如果没有,您必须在代码中精确指定端口。

相关问题