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)
具体是什么原因造成的。
求教各位大大解惑,谢谢!
今天更新的mysql8,和你遇到了一模一样的问题,不知道你怎么解决的。
我是更换了root密码的认证方式解决的,新版mysql使用的caching_sha2_password,换成mysql_native_password我就可以连上了。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxx';