mysql 如何从网络外部访问数据库?[已关闭]

qoefvg9y  于 2023-04-19  发布在  Mysql
关注(0)|答案(2)|浏览(163)

**已关闭。**此问题为not about programming or software development。当前不接受答案。

此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site主题相关,您可以留下评论以解释在何处可以回答此问题。
昨天关门了。
Improve this question
我有一个mysql数据库,它托管在Windows服务器上的域下:https://<some-domain>.net/phpmyadmin/index.php,我试图从服务器外部连接到flask应用程序中的此数据库,但它无法连接到服务器。
我的Python代码:

conn = mysql.connector.connect(host='https://<some-domain>.net/phpmyadmin/index.php',
                               user='user',
                               password='password',
                               database='db',
                               port='3306')

我还尝试了域的IP地址,它没有工作。在Windows服务器上本地工作没有任何问题,但当我试图从Windows服务器外部访问数据库时,它不会连接。
使用Domain作为主机,我将获得:
mysql.connector.errors.InterfaceError:2003:无法连接到“%-.100s:%u”(%s)上的MySQL服务器(警告:%u格式:需要真实的,而不是str)
使用IP地址作为主机,我得到:
mysql.connector.errors.InterfaceError:2003:无法连接到MySQL服务器上'217.237.79.165:3306'(10060连接尝试失败,因为连接的一方在一段时间后没有正确响应,或建立连接失败,因为连接的主机没有响应)
有没有人有一个解决方案,如何连接到数据库从外部的windows服务器?

s6fujrry

s6fujrry1#

最有可能的情况是,您的windows主机或windows主机所在的网络上遇到了防火墙问题。
“使用IP地址作为主机,我得到一个:mysql.connector.errors.InterfaceError:2003:无法连接到'217.237.79.165:3306'上的MySQL服务器(10060连接尝试失败,因为连接的一方在一段时间后没有正确响应,或建立连接失败,因为连接的主机没有响应)”
这告诉我,你的flask应用程序所在的盒子甚至不能与你的windows主机的IP通信。你会想要解决这个问题。
运行traceroute 217.237.79.165tracert 217.237.793.165,查看连接在何处断开。
如果你的flask应用程序位于另一个windows盒子上,你可以使用powershell命令:

Test-NetConnection -computer 217.237.79.165 -port 3306

以了解您是否在端口级别也遇到问题。
好运

s3fp2yjn

s3fp2yjn2#

  • hostname:应该是Windows服务器的IP地址,您填写的值是phpmyadmin的URL,这是MySQL的管理工具(您与MySQL服务器沿着安装)
  • port:应该是一个整数,在本例中为port=3306(MySQL的默认端口)
  • 您需要更新Windows服务器上的FW以使其接受从客户端到端口3306的连接

对于Python上的mysql.connector.connect方法:
https://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html

相关问题