我想尝试使用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。
有人有什么建议吗?
答案 0 :(得分:0)
此答案对我有用:Trying to connect to remote MySQL host (error 2003)
我遇到同样的错误,当我使用localhost
连接数据库时,连接正常。但是,从另一台PC或从数据库服务器本身使用ip 114.***.***.***
都失败了。而且我可以从另一台计算机ping这个IP。
我的错误是由中间路由器引起的,当我想通过ip(不是localhost
或127.0.0.1
)通过ip访问数据库时,连接请求已发送到路由器,然后转发到数据库服务器。而且路由器没有关于此的转发规则。
因此,我在路由器的“配置”页面上为其添加了一条规则,然后成功连接了数据库。