配置:python3.6+pymysql+mysql8.0.21
問題:終端命令可正常進行連接mysql服務,pycharm中代碼連接mysql報錯
代碼:
import pymysql
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='password',db='auto_api',
charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
# 通過cursor創建游標
cursor = conn.cursor()
# 創建sql 語句
sql = "select * from api_id"
# 執行sql語句
cursor.execute(sql)
# 獲取所有記錄列表
results = cursor.fetchall()
print(results)
cursor.close() # 關閉游標連接
conn.close() # 關閉數據庫連接
運行結果:
pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")
解決方案:更換root密碼的認證方式-新版mysql使用的caching_sha2_password,換成mysql_native_password
步驟:
1、終端命令行連接mysql:
mysql -u root -p
2、輸入mysql登錄密碼
3、輸入命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
4、回車執行命令
5、返回下面內容代表執行成功
Query OK, 0 rows affected (0.01 sec)
結果:再次執行pycharm中的代碼成功返回數據庫內容