我不是网络/网络/互联网程序员,所以请原谅我在这方面的noobness。我有一个使用免费托管服务的网站。它们包括一个MySQL数据库。以下是数据库的详细信息:
port = 3306
host = "fdb4.biz.nf"
database = "1284899_6067"
user = "1284899_6067"
password = "somepass9351"
我正在使用MySQLdb模块(安装在我的CLIENT机器上 - 而不是服务器上)来连接到这个数据库:
db = MySQLdb.connect(host=host, user=user, passwd=password, db=database,port=port)
但是我收到以下错误:
OperationalError: (2003, "Can't connect to MySQL server on 'fdb4.biz.nf' (10060)
我已经尝试了什么
我的想法:
两个问题
非常感谢您的帮助,非常感谢!被困了一整天。
答案 0 :(得分:2)
出于安全原因,mysql仅侦听来自localhost的连接。错误代码10060基本上是:您不允许远程连接。
解决方案:在linux中找到my.ini(或my.cnf)并尝试查找一行:
bind-address = 127.0.0.1
这一行说:只允许本地连接。因此,您应该注释掉这一行,或者设置您的IP地址。
答案 1 :(得分:0)
是的,MySQLdb可以连接到远程主机。
您对connect方法的使用是正确的。
首先应检查是否可以从mysql客户端连接到远程mysql服务器。
在终端中,您可以键入mysql -h hostname -u username -p databasename 这应该提示您输入密码。输入密码。你能连接吗?
如果你无法连接,那么你有访问问题,而不是python - mysqldb问题
服务器无法访问,因为它位于防火墙后面,在这种情况下,客户端计算机的IP需要列入白名单。检查防火墙设置
或者,远程计算机上运行的mysql服务器配置为仅接受本地连接。我认为这是默认值,但我不确定。您应该ssh到运行数据库服务器的服务器远程主机,在服务器上找到my.cnf文件并检查设置。根据您的mysql版本,配置看起来会略有不同。
或者,您尝试连接的用户与您尝试连接的IP无关。 Mysql用户有两个部分,如:'username'@'host'。为了使用户能够从所有ips连接,用户需要看起来像'''''%'。
我希望我已经给你足够的力量来尝试调试这个问题。