mysql.connector.errors.ProgrammingError:1045(28000):拒绝用户“root”@“localhost”的访问(使用密码:是)

2024-09-28 23:41:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我跟随讲师的代码和视频。他已经安排好了,我也照办了。他的作品,我的没有,我也不知道为什么。它设置为用户“root”,密码为空。我已经尝试过pip安装mysql连接器python。我想保留与他的相同的用户和密码,以便更好地跟进。我通过Wampserver64使用python和mysql。当我试图通过cmd运行python文件时,我得到错误“mysql.connector.errors.ProgrammingError:1045(28000):拒绝用户'root'@'localhost'的访问”(使用密码:YES)”。我对这件事还不熟悉,所以我一直在努力想办法。密码(使用密码:是)是否表示密码匹配?如何让脚本连接到mysql



db = mysql.connector.connect(
    host = "localhost",
    user= "root",
    password = " "
    #database ='datarepresentation'
)
        #print ("connection made")

cursor = db.cursor()

cursor.execute("CREATE DATABASE datarepresentation")

Tags: pip代码用户localhost密码dbconnector视频
1条回答
网友
1楼 · 发布于 2024-09-28 23:41:07

当我的朋友试图在使用MySQL数据库设置的Ubuntu Windows Linux子系统中运行python脚本时,也出现了同样的问题

我们通过在MySQL 8.0命令行客户端中运行以下三个命令,然后重新启动机器以重新启动所有内容,解决了这个问题。我们在项目中使用的是Flask,而不是Wamp,所以希望它也能起到同样的作用。在here中找到了这些命令

SELECT user, authentication_string, plugin, host FROM mysql.user;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Current-Root-Password';
FLUSH PRIVILEGES;

根据MySQL文档(MySQL Documentation),它声明(使用密码:YES)只意味着您实际上正在使用密码。如果您试图在不使用密码的情况下登录,它会说“不”

至于如何将脚本连接到数据库,您几乎已经掌握了。您可以编写一个查询,从数据库中检索要检查的内容。下面是一个使用您提到的数据库检索某种数据并确保其位于表中的示例

cnx = mysql.connector.connect(
    host="localhost", 
    user='root', 
    password=" ", 
    database='datarepresentation')
cursor = cnx.cursor()
query = ("SELECT * FROM table-name WHERE key1 = %s")
dataName = 'randomValue'
cursor.execute(query, (dataName))
result = cursor.fetchone()
if result[0] == 1:
    return True
else:
    return False

相关问题 更多 >