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

标签 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()

错误是这样的:

OperationalError: (2003, "Can't connect to MySQL server on 'My Computer IP' (111)")

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

这个方法我已经试过了,还是不行。

我原来的文档“my.cnf”中没有skip-networking这一行。

所以基本上,mysql不应该只监听127.0.0.1。 理论上mysql可以监听任何IP,我的电脑也设置了允许3306端口。

有人有什么建议吗?

最佳答案

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

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

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

所以我通过路由器的配置页面添加了一条规则,然后成功连接了数据库。

关于python - 如何使用python通过ip地址连接mysql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48126859/

相关文章:

带有 or 语句的 python 表达式

python - 非常简单的python对峙

python - 在 Azure 函数中使用 python 进行 Gremlin 操作

mysql - 运行 rake migrate 给出 Mysql 错误 schema_migrations.frm

python - 具有静态(类似数据)大小的 Matplotlib RegularPolyCollection?

python - 如何删除提取并执行所需任务后提取的每个文件?

php - 多个左连接返回双行

mysql - 有效地从多个 rails 模型创建 "feed"?

mysql - MySQL 中的图像

mysql - DateTime 按日期和小时分组