0

I'm getting the following error. I'm not at all good with sql and or python so I would appreciate a simplified answer. :

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

my code is :

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()

I have checked and the password and user for my database are correct and hence there should not be an error. Please do help.

1 Answers1

0

In MySQL 8.0, caching_sha2_password is the default authentication plugin rather than mysql_native_password. Try this

con = sq.connect(host="localhost",user="root",password="root",database="bank",auth_plugin='mysql_native_password')

type this in your MYSQL CLI

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{Password}';
Ankit Tiwari
  • 4,438
  • 4
  • 14
  • 41