【sqlalchemy】使用正確的DB_URI卻報錯密碼錯誤-密碼中包含特殊符號導致


【原因】

db_password密碼中含有特定字符,比如含有@ %,則把密碼部分進行URL編碼

【解決辦法】

from urllib.parse import quote_plus as urlquote db_passw='f%%!kdku9fTn3r'
#在連接前將包含特殊符號的密碼轉碼再鏈接
url='mysql+mysqlconnector://<username>:%s@<ip>:<port>/<db_name>?charset=utf8'%urlquote(db_passw) engine = create_engine(url)

很奇怪的是,我之前一直用的這個密碼,並沒有報錯。

 

現在卻突然這樣,真是奇怪,難道是開發環境所使用的依賴包有升級導致的嗎?(所以有經驗既是一件好事-做過的事做的更快了,有時候也會耽誤事-盲目相信之前的判斷-不能以全新的視角看待發現的問題。因為之前一直都能連接通,所以我一直沒有考慮可能是真的密碼出了問題,也不知道該往什么方向去排查問題,真是很是頭疼了一會兒。)

 

總之,這個問題解決了還是很開心的

 

超感謝下面2位作者為了提供了解決問題的思路

參考文章:

關於使用sqlalchemy鏈接數據庫時密碼中有@等特殊字符時報密碼錯誤的解決方法

sqlalchemy 鏈接數據庫,指定編碼,解決密碼含有特殊字符

 

 


免責聲明!

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



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