虽然我没有问题以这种方式连接到我的localhost数据库:
import MySQLdb
localdb = MySQLdb.connect( host="127.0.0.1",
user="root",
passwd="password",
db="events")
我可以连接到我的在线数据库。
通常我使用 phpmyadmin 手动访问此数据库,地址类似于 212.227.000.000/phpmyadmin
所以我试过像
这样的东西onlinedb = MySQLdb.connect( host="212.227.000.000" ...
或
onlinedb = MySQLdb.connect( host="212.227.000.000/phpmyadmin" ...
但是我收到的错误如下:
OperationalError: (2003, "Can't connect to MySQL server on '212.227.000.000' (10061)")
答案 0 :(得分:1)
听起来212.227.000.000/phpmyadmin
是PHPMyAdmin的URL(您在浏览器中打开的内容)。如果是这样,则可能无法在具有IP 212.227.000.000的计算机上托管数据库。您应该检查PHPMyAdmin如何连接到数据库。如果PHPMyAdmin连接到127.0.0.1,这可能意味着数据库不侦听外部IP地址,并且无法通过网络访问。
如果你有ssh访问212.227.000.000,你可以使用netstat
命令检查:
$ netstat -pant | grep LISTEN | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN -
上面的0.0.0.0表明MySQL正在侦听所有IP,并且禁止任何防火墙,您应该能够连接到数据库。
否则,如果显示127.0.0.1:3306
,则只能从计算机本身访问数据库,而不能通过网络访问数据库。在这种情况下,您可以使用SSH隧道。