[英]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.