【发布时间】:2016-08-17 08:19:13
【问题描述】:
我有一个托管在“arvixe”中的 MySQL 数据库(由 cPanel 管理)。我可以通过我的 PC 上的“MySQL Workbech”连接到它,所以我认为我创建它是正确的。
我在 Cloud9 中托管了一个 Python 应用程序(Telegram 机器人),所以我使用下面的代码连接到数据库:
import MySQLdb
# Open database connection
db = MySQLdb.connect("weongame.com","weonwii_ceux","<here my pass>","weonwii_Forms_Bot")
结果是,在很长一段时间后(我想是任何一种“超时”),控制台显示下一个回溯:
Traceback (most recent call last):
File "/home/ubuntu/workspace/bot.py", line 9, in <module>
db = MySQLdb.connect("weongame.com","weonwii_ceux","<here my pass>","weonwii_Forms_Bot")
File "/usr/local/lib/python3.4/dist-packages/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/usr/local/lib/python3.4/dist-packages/MySQLdb/connections.py", line 204, in __init__
super(Connection, self).__init__(*args, **kwargs2)
_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on 'weongame.com' (110)")
所以我专注于主要错误:_mysql_exceptions.OperationalError: (2003, "Can't connect to MySQL server on 'weongame.com' (110)")
我刚刚在 cPanel 上找到了“远程 MySQL”部分。我不知道我必须在那里介绍的确切 IP,所以我写了 c9.io(作为主机名和 IP 地址),https://forms-bot-ceuxdruman.c9users.io 相同(Cloud9 表示我的应用程序正在运行,尽管它是简单的脚本,而不是网页/webapp)和向我的 Cloud9 工作区的 Ubuntu 控制台询问的 IP 地址。但是全部引入之后(考虑到IP可能是动态的),结果完全一样。
我也知道 arvixe 允许这种外部连接,所以这不是可能的原因。
知道什么可能导致错误吗?提前致谢。
编辑:我用过
import socket
socket.gethostbyname(socket.gethostname())
为了找出运行我的机器人的真实 IP,然后我将它与其他人一样包含在“远程 MySQL”部分中,但结果再次完全相同。
【问题讨论】:
标签: python mysql connection external cpanel