pymysql: access denied for user 'root'@'localhost'

发布于 2022-09-07 04:34:10 字数 674 浏览 19 评论 0

python3.6+pymysql+mysql8.0

在terminal可以用root账户正常登陆,如下图
图片描述

但是用pymysql登陆报错

import pymysql

connect = pymysql.connect(          #连接数据库服务器
        user = 'root',
        password = 'password',
        host = 'localhost',
        port = 3306,
        db = 'mysql',
        charset = 'utf8'
        )

conn = connect.cursor() 

报错信息
图片描述

创建一个新的user也不行,但是在terminal里面可以正常登陆。
初步判断还是pymysql的问题,但是不知道这个

raise errorcalss(errno,errval)

具体是什么原因造成的。

求教各位大大解惑,谢谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

黑寡妇 2022-09-14 04:34:10

今天更新的mysql8,和你遇到了一模一样的问题,不知道你怎么解决的。
我是更换了root密码的认证方式解决的,新版mysql使用的caching_sha2_password,换成mysql_native_password我就可以连上了。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxx';

鹿! 2022-09-14 04:34:10

看了你的报错信息是没有使用password,很奇怪,直接用你的代码,我的能正常访问,你在终端直接进入python shell,然后执行一下试试?

热血少△年 2022-09-14 04:34:10

更改你的mysql密码试试, 上面的错误提示,你没有输入密码.

有时候,有些密码我用navicate也链接不上,这种问题很奇怪

帝王念 2022-09-14 04:34:10

参数password换成passwd

反话 2022-09-14 04:34:10

grant 授权一下

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文