[英]Traceback error in python with mysql connector
我收到以下錯誤。 我對 sql 和或 python 一點也不擅長,所以我會很感激一個簡化的答案。 :
Traceback (most recent call last):
File "C:\Users\samra\Desktop\folder\1.py", line 2, in <module>
con = sq.connect(host="localhost",user="root",passwd="root",database="bank")
File "C:\Users\samra\AppData\Local\Programs\Python\Python39\lib\site-packages\mysql\connector\__init__.py", line 179, in connect
return MySQLConnection(*args, **kwargs)
File "C:\Users\samra\AppData\Local\Programs\Python\Python39\lib\site-packages\mysql\connector\connection.py", line 95, in __init__
self.connect(**kwargs)
File "C:\Users\samra\AppData\Local\Programs\Python\Python39\lib\site-packages\mysql\connector\abstracts.py", line 716, in connect
self._open_connection()
File "C:\Users\samra\AppData\Local\Programs\Python\Python39\lib\site-packages\mysql\connector\connection.py", line 208, in _open_connection
self._do_auth(self._user, self._password,
File "C:\Users\samra\AppData\Local\Programs\Python\Python39\lib\site-packages\mysql\connector\connection.py", line 137, in _do_auth
packet = self._protocol.make_auth(
File "C:\Users\samra\AppData\Local\Programs\Python\Python39\lib\site-packages\mysql\connector\protocol.py", line 99, in make_auth
packet += self._auth_response(client_flags, username, password,
File "C:\Users\samra\AppData\Local\Programs\Python\Python39\lib\site-packages\mysql\connector\protocol.py", line 58, in _auth_response
auth = get_auth_plugin(auth_plugin)(
File "C:\Users\samra\AppData\Local\Programs\Python\Python39\lib\site-packages\mysql\connector\authentication.py", line 190, in get_auth_plugin
raise errors.NotSupportedError(
mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported
我的代碼是:
import mysql.connector as sq
con = sq.connect(host="localhost",user="root",password="root",database="bank")
def openacc():
n=input("Enter name : ")
ac=input("Enter account no. : ")
db=input("Enter D.O.B : ")
p=input("Enter phone number : ")
ad=input("Enter Address : ")
ob=int(input("Enter opening balance : "))
data1=input(n,ac,db,p,ad,ob)
data2=input(n,ac,ob)
sql1="insert into account value(%s,%s,%s,%s,%s,%s)"
sql2="insert into account value(%s,%s,%s,%s,%s,%s)"
c=con.cursor()
c.execute(sql1,data1)
c.execute(sql2,data2)
con.commit()
print("data entered successfully")
main()
我已經檢查過,我的數據庫的密碼和用戶是正確的,因此不應該有錯誤。 請幫忙。
在 MySQL 8.0 中,caching_sha2_password 是默認的身份驗證插件,而不是 mysql_native_password。 嘗試這個
con = sq.connect(host="localhost",user="root",password="root",database="bank",auth_plugin='mysql_native_password')
在MYSQL
CLI
中輸入
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{Password}';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.