我在使用python连接到托管的mysql数据库时遇到了一些问题。我的代码如下:
import MySQLdb
db = MySQLdb.connect(host="xxxxxx.db.1and1.com", user="xxxxxxx",passwd="xxxxxxx", db="xxxxxxx")
我收到以下错误:
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
db = MySQLdb.connect(host="db518597727.db.1and1.com", user="dbo518597727", passwd="OilyOily123", db="db518597727")
File "C:\Python27\lib\site-packages\MySQLdb\__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 193, in __init__
super(Connection, self).__init__(*args, **kwargs2)
OperationalError: (2003, "Can't connect to MySQL server on 'xxxxxxx.db.1and1.com' (10060)")
我的sql数据库由1and1托管。我确信我拥有正确的凭据,就像我在php网站上从这个数据库中读取的那样,使用相同的凭据(我已经检查过三次)它可以正常工作。
我已经在Raspberry Pi(我打算使用它)和Windows 8.1 PC上尝试过这个,所以我很确定它不是计算机的问题。
非常感谢任何帮助。非常感谢。
答案 0 :(得分:1)
在每个客户端的MySQL
凭证中,我们区分了几种客户类型:
- localhost
表示与通过Unix Socket连接的MySQL服务器相同的机器
- 127.0.0.1
表示与通过TCP / IP连接的MySQL服务器相同的机器
- A.B.C.D
其中字母由0-255范围内的数字替换,这意味着通过TCP / IP连接的客户机的IP地址
- *
是一个通配符,表示任何客户端都可以通过TCP / IP
MySQL
用户表中的每个条目都包含客户端规范(如上所述),用户名,密码和其他一些列(此处不相关)。
因此,您面临的问题是1and1服务器上的PHP脚本可以连接到1and1上托管的数据库,因为托管公司将其数据库服务器设置为接受来自其自身服务器的连接并使用有效凭据。
但是对于来自1and1未知的客户端计算机的连接,相同的凭据被视为无效。
您可以做的是要求1和1授予您对数据库的特定IP访问权限 你能做的就是自己克服这个问题。