Python 连接数据库失败

1 投票
2 回答
1093 浏览
提问于 2025-04-18 00:59

我有个简单的问题想请教一下。

当我通过Python把数据放到本地服务器的数据库里时,我是这样做的:

db= MySQLdb.connect("localhost", "root", "pass", "Database")

现在我有一个HostGator的服务器,这是我和我的朋友一起用的。

下面是Cpanel数据库部分的快照,如图所示。

在这里输入图片描述

现在我应该在下面的代码中输入什么来连接到数据库呢?

db= MySQLdb.connect( , , ,)

我试过这个,但失败了。

db= MySQLdb.connect("moeenmh.com","moeenmh_ahmed","<mypass>","moeenmh_ahmed")

我为自己创建的用户是moeenmh_ahmed,并且有一个密码。

出现的错误是 "用户'moeenmh_ahmed'@'91.74.98.6'访问被拒绝(使用密码:是)"

2 个回答

0

从Cpanel的截图来看,moeenmh_ahmed这个用户没有权限访问moeenmh_ahmed这个数据库。你可以在Cpanel的文档中查看如何设置权限:http://docs.cpanel.net/twiki/bin/view/AllDocumentation/CpanelDocs/MySQLDatabases#Define 用户的权限。

0

你的数据库名称必须是完整的名字,而不仅仅是 _ahmed 这一部分。所以它应该是 moeemnh_adhmed。对于远程连接,协议应该设置为 'TCP'。

另外,检查一下你是否已经配置了 MySQL 以支持远程连接。首先可以尝试用以下命令连接:
mysql -u moeenmh_ahmed -h moeenmh.com -p

关于设置权限的详细信息,可以参考这个 StackOverflow 的回答: https://stackoverflow.com/a/12844804/1431750。引用内容如下:

你需要以 root 用户身份执行以下操作:

GRANT ALL PRIVILEGES ON *.* TO  'USERNAME'@'IP'  IDENTIFIED  BY  'PASSWORD';

其中 IP 是你想要允许访问的 IP 地址,USERNAME 是你用来连接的用户名。

如果你想允许任何 IP 访问,只需将 IP 替换为 %。

然后你只需要执行:

FLUSH PRIVILEGES

或者重启 MySQL 服务器,就完成了。

撰写回答