我使用的是python3.6+pymysql+mysql8.0
在cmd命令行直接輸入mysql回車出現:ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: N
O)
這時在cmd命令行輸入mysql -u root -p 回車輸入密碼,就可以成功連接數據庫
但用pymysql登陸報錯,腳本如下:
def connectdb():
print('連接到mysql服務器...')
db = pymysql.connect(
host="localhost",
user="root",
passwd="dong1990",
port=3306,
db="fund_db",
charset='utf8',
cursorclass=pymysql.cursors.DictCursor)
print('連接上了!')
return db
這時報錯pymysql.err.OperationalError: (1045, u"Access denied for user 'root'@'localhost' (using password: No)")
網上給了各種各樣的方法,大多是通過各種方式修改密碼。
最簡單的方法是更換了root密碼的認證方式解決的,新版mysql使用的caching_sha2_password,換成mysql_native_password我就可以連上了。
步驟是在cmd命令行連接mysql, 通過mysql -u root -p dong1990
然后輸入ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'dong1990';
DONE!
這時再跑下python腳本就可以連接了。
原文鏈接:https://blog.csdn.net/dongweionly/article/details/80273095