pymysql: access denied for user 'root'@'localhost'
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
今天更新的mysql8,和你遇到了一模一样的问题,不知道你怎么解决的。
我是更换了root密码的认证方式解决的,新版mysql使用的caching_sha2_password,换成mysql_native_password我就可以连上了。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxx';
看了你的报错信息是没有使用password,很奇怪,直接用你的代码,我的能正常访问,你在终端直接进入python shell,然后执行一下试试?
更改你的mysql密码试试, 上面的错误提示,你没有输入密码.
有时候,有些密码我用navicate也链接不上,这种问题很奇怪
参数
password
换成passwd
grant 授权一下