簡體   English   中英

無法從我的 Web 應用程序連接到我的 MYSQL Azure - 1045,“用戶 'dbadmin'@'xx.xx.xx.x' 的訪問被拒絕(使用密碼:是)

[英]Unable to connect to my MYSQL Azure from my Webapp - 1045, "Access denied for user 'dbadmin'@'xx.xx.xx.x' (using password: YES)

我在我的 Webapp 中不斷收到以下錯誤

OperationalError: (_mysql_exceptions.OperationalError) (1045, "Access denied for user 'dbadmin'@'xx.xx.xx.x' (using password: YES)")

MySQL Azure:

  • 托管在地區 > 法國中部
  • 允許訪問 Azure 服務
  • 通過 Azure 門戶使用用戶名“dbadmin”和服務器“jetbase”創建

SQLAlchemy db_uri 看起來像這樣

mysql://dbadmin@jetbase:'mysecretpassword'@jetbase.mysql.database.azure.com:3306/jetdb

網絡應用程序

也在法國中部舉辦

在我的開發計算機上本地運行相同的 docker 映像時,可以訪問數據庫(我在安全下的客戶端 IP 地址中手動添加了 ip。)

有人可以幫我調試這個嗎?

根據提供的信息,我可以給出 2 個想法:

  • Web 應用程序客戶端中數據庫 URL 的編碼。 我們的 PG 實例具有類似的 DB url 語法(用戶名中帶有“@”)。 在我們的服務器中,我們將其替換為“%40”以使其正常工作。
  • 您的網絡服務器 IP 不允許使用帳戶 dbadmin(也許 IP 不是靜態的,也許它不是您想到的那個,這實際上取決於您的 web 應用程序的托管)。 我想你已經仔細檢查過了。

如果您願意,我們可以在 StationF 一起嘗試調試

奇怪的是,我的密碼有一個感嘆號“!” 結果發現它沒有被正確解析,我不斷收到錯誤“用戶@XX.XX.XX.XX的訪問被拒絕(密碼=是)”

我將其切換為“*”,現在工作正常。

我還必須從 db_uri 中刪除密碼周圍的單引號

mysql://dbadmin@jetbase:mysecretpasswordwithoutquotes@jetbase.mysql.database.azure.com:3306/jetdb

Ps:奇怪的是,在我的計算機上本地運行相同的 docker 容器時,密碼包含一個 !,工作正常。 它也適用於 MySQL 工作台,但在 Azure 中的應用程序服務 (webapp) 中失敗。 我猜 Azure 應用程序服務對 db_uri 進行編碼並弄亂了“!” 在密碼中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM