MYSQL:"Access denied for user 'X'@'localhost' (using password: YES)" PYTHON

5
我正在尝试使用Python访问数据库,但是它就是无法工作。当我访问远程数据库时一切正常。但在本地却有某种问题。我在这里做错了什么?我尝试了一些在互联网上找到的授予权限的方法,但它们都没有起作用。
本地用户: enter image description here 使用的代码: enter image description here 收到的消息: enter image description here 感谢您的帮助。

你读过相关问题吗? - 给出的答案似乎也适用于你的问题(如果我正确解释了你的phpmyadmin截图)。 - Maurice
抱歉!有点困惑!!你尝试访问的数据库是本地的(即与代码在同一台机器上)还是像你建议的那样远程的(即在另一台机器上)??? - RiggsFolly
旁注:授予此用户“所有权限”似乎有些过度。只授予应用程序所需的权限,并且仅在应用程序需要的数据库上授予权限。 - RiggsFolly
我尝试编辑用户。我排除了匿名用户并将主机更改为“127.0.0.1”、“localhost”、“%”、“192.168.0.116”(我的本地IP),但它不起作用。这里一切都是本地的。我删除了所有特权,只保留了“数据”命令。 - Xidh
另外,这是MAMP的MySQL。 - Xidh
4个回答

4
经过数小时的测试,我终于找出了问题所在!在更改MySQL用户并未获得结果后,当我将端口添加到MySQL数据库中时,一切都正常工作了!
db = MySQLdb.connect(host="127.0.0.1",user="userpython",passwd="root",db="bigdata",port=8886)

1

对于我来说,添加端口号并没有起作用。授予运行Python脚本的操作系统用户权限是有效的。

sudo mysql -u root -h localhost -p
grant all privileges on database_name.* to 'os_user'@'localhost' identified by 
'password' with grant option;

你的解决方案对我不起作用 - 我需要改变什么吗? - Areza

0

MySQLdb.connect() 函数中缺少端口号。


-1

请确保您已正确添加所有参数,确认用户名和密码有效。以下是示例:

db = MySQLdb.connect(
host="localhost",
user="username",
password="password",
database="database_name",
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接