如何使用python通过ip地址连接mysql?

时间:2018-01-06 11:27:24

标签: python mysql

我想尝试使用python连接到MySQL数据库。

连接到localhost工作正常但我无法通过ip地址连接到MySQL数据库。

这是我的代码:

#!/usr/bin/python
# -*- coding: utf-8 -*-


import MySQLdb


db = MySQLdb.connect(host="My Computer IP",
    user="root", passwd="606", db="testdb",port=3306)
cursor = db.cursor()


cursor.execute("SELECT * FROM table1")


results = cursor.fetchall()


for record in results:
  col1 = record[0]
  col2 = record[1]
  print "%s, %s" % (col1, col2)


db.close()

错误是这样的:

  

操作错误:(2003,"无法连接到MySQL服务器'我的   计算机IP' (111)&#34)

我发现有人也曾在stackoverflow上问过类似的问题 - > Can't connect to MySQL server error 111

我尝试过这种方法,但它仍然没有用。

我没有在文档" my.cnf"原本。

基本上,mysql不应该只监听127.0.0.1。 从理论上讲,mysql可以监听任何IP,我也可以在我的计算机中设置端口3306。

有人有什么建议吗?

1 个答案:

答案 0 :(得分:0)

此答案对我有用:Trying to connect to remote MySQL host (error 2003)

我遇到同样的错误,当我使用localhost连接数据库时,连接正常。但是,从另一台PC或从数据库服务器本身使用ip 114.***.***.***都失败了。而且我可以从另一台计算机ping这个IP。

我的错误是由中间路由器引起的,当我想通过ip(不是localhost127.0.0.1)通过ip访问数据库时,连接请求已发送到路由器,然后转发到数据库服务器。而且路由器没有关于此的转发规则。

因此,我在路由器的“配置”页面上为其添加了一条规则,然后成功连接了数据库。