鍍金池/ 問答/Python  數(shù)據(jù)庫/ pymysql: access denied for user 'root'@'

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

python3.6+pymysql+mysql8.0

在terminal可以用root賬戶正常登陸,如下圖
圖片描述

但是用pymysql登陸報(bào)錯(cuò)

import pymysql

connect = pymysql.connect(          #連接數(shù)據(jù)庫服務(wù)器
        user = 'root',
        password = 'password',
        host = 'localhost',
        port = 3306,
        db = 'mysql',
        charset = 'utf8'
        )

conn = connect.cursor() 

報(bào)錯(cuò)信息
圖片描述

創(chuàng)建一個(gè)新的user也不行,但是在terminal里面可以正常登陸。
初步判斷還是pymysql的問題,但是不知道這個(gè)

raise errorcalss(errno,errval)

具體是什么原因造成的。

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

回答
編輯回答
忘了我

grant 授權(quán)一下

2018年1月20日 16:14
編輯回答
念初

今天更新的mysql8,和你遇到了一模一樣的問題,不知道你怎么解決的。
我是更換了root密碼的認(rèn)證方式解決的,新版mysql使用的caching_sha2_password,換成mysql_native_password我就可以連上了。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxx';

2017年6月12日 04:49
編輯回答
尐懶貓

參數(shù)password換成passwd

2017年12月16日 02:02
編輯回答
悶油瓶

更改你的mysql密碼試試, 上面的錯(cuò)誤提示,你沒有輸入密碼.

有時(shí)候,有些密碼我用navicate也鏈接不上,這種問題很奇怪

2017年2月23日 22:55
編輯回答
夏夕

看了你的報(bào)錯(cuò)信息是沒有使用password,很奇怪,直接用你的代碼,我的能正常訪問,你在終端直接進(jìn)入python shell,然后執(zhí)行一下試試?

2018年2月24日 19:55