mac電腦python連接本地mysql報錯:pymysql.err.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")


配置: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中的代碼成功返回數據庫內容


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM