I'm trying to get my Python program to insert data into MySQL and I followed a guide however I keep getting the error below.
"Authentication plugin '{0}' is not supported".format(plugin_name)) mysql.connector.errors.NotSupportedError: Authentication plugin 'caching_sha2_password' is not supported"
Have I missed a setting in MySQL server or does Python not support this yet?
I think I can just change the password type but MySQL doesn't want to let me for some reason all users with caching_sha2_password
can't be changed and when I create a new user and select SHA256 password I get the error creating account @% the password hash doesn't have the expected format. Check if the correct password algorithm is being used with the PASSWORD()
function.
#!/user
# -*- coding: utf-8 -*-
from __future__ import print_function
import urllib.request
import numpy as np
import mysql.connector as mysql
from datetime import date, datetime, timedelta
cnx = mysql.connect(user='root', password='password', database='powergrid')
cursor = cnx.cursor()
tomorrow = datetime.now().date() + timedelta(days=1)
idfueltype= cursor.lastrowid
add_fueltype = ("INSERT INTO fueltype"
"(idfueltype, fueltypecol, demand)"
"VALUES(%s, %s, %s)")
fueltype_data = (idfueltype, 'coal', 10000)
cursor.execute(add_fueltype, fueltype_data)
cnx.commit()
cursor.close()
cnx.close()
I managed to fix this. In the end I was using a version of python in Anaconda which just wouldn't install version 8.0.11 of the python connector, I managed to get 8.0.11 installed on my vanilla python 3.6.5 using windows PowerShell (in admin privileges) and using pip install MySQL-connector-python
(I think I also had to update pip from 9 to 10.