簡體   English   中英

如何從帶有 wordpress docker 映像的 azure app 服務連接到 mysql 的 azure 數據庫?

[英]how to connect to azure database for mysql, from azure app service with wordpress docker image?

我有一個 azure app 服務,使用來自 docker hub 的最新 wordpress 圖像 azure 應用服務的屏幕截圖: 在此處輸入圖像描述

然后在 azure app 服務 -> 應用程序設置中,我添加了以下鍵/值對,它們將用於連接 mysql 的 Azure 數據庫:

  1. WORDPRESS_DB_HOST
  2. WORDPRESS_DB_NAME
  3. WORDPRESS_DB_PASSSWORD
  4. WORDPRESS_DB_USER

截屏: 在此處輸入圖像描述

在我的 Azure mysql 數據庫中,我啟用了公共訪問/允許從任何 azure 服務進行公共訪問/還添加了我的客戶端 IP 和這個 IP 范圍 0.0.0.0 - 255.255.255.255。 我可以從我的客戶端訪問它並創建將由 azure app 服務使用的數據庫。 截圖如下: 在此處輸入圖像描述

在服務器參數中,我還關閉了 require_secure_transport 設置: 在此處輸入圖像描述

最后,我嘗試啟動該站點,但它拋出錯誤“建立數據庫連接時出錯”,截圖如下: 在此處輸入圖像描述

我是 wordpress / docker 的新手,不知道如何解決這個問題。 我還查看了一些視頻/文檔,並沒有看到任何其他配置差異。 你能指導我如何解決這個問題嗎? 非常感謝。

您收到此錯誤消息。

警告:mysqli_real_connect(): (HY000/1045)>: Access denied for user 'ivan'@'52.xx.xxx.xx' (使用密碼: YES)

這意味着 MySQL 接收、處理並拒絕了您的 WordPress 實例的連接嘗試。 因此,您知道主機名是正確的,並且您的雲提供商的防火牆設置允許您的 WordPress 實例與您的 MySQL 實例交換網絡數據。

怎么了?

MySQL 的用戶名/帳戶名設置有一個怪癖。 帳戶名稱可能類似於'ivan'@'localhost''ivan'@'%' (甚至類似於'ivan'@'192.0.22.33' )。

其中第一個僅允許從 localhost 登錄(或通過 ssh 隧道)。 第二個允許從'%'登錄,這意味着任何主機。 您的 WordPress 實例需要第二個才能訪問 MySQL。

當您從您的機器登錄到 MySQL 時,請執行此操作。

SELECT host, user FROM mysql.user WHERE user='ivan';

你應該看到兩行,像這些

 host       user  
 ----       ---   
 %          ivan  
 localhost  ivan 

作為主機的帶有'%'的帳戶可能丟失。 如果是這樣,這意味着您需要創建另一個 MySQL 帳戶並授予它訪問您的數據庫的權限 這樣做。

CREATE USER 'ivan'@'%' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;

接下來,確保您剛剛創建的用戶帳戶(您的 WordPress 軟件將用於連接到 MySQL 的用戶帳戶)可以訪問您的數據庫。

GRANT ALL PRIVILEGES ON wordpress.* TO 'ivan'@'%';
FLUSH PRIVILEGES;

如果您仍然收到錯誤消息,則可能是您'ivan'@'%'帳戶上的密碼與您在 WordPress 配置中輸入的密碼不匹配。 你可以改變它

ALTER USER 'ivan'@'%' IDENTIFIED BY 'your_password'; 
FLUSH PRIVILEGES;

如果它仍然給出相同的錯誤消息,則您的雲供應商可能需要 TLS 才能連接到 MySQL。 您可能需要就此咨詢他們的支持團隊。

(這是設置新 WordPress 實例的常見障礙。)

好的,只是為了保持清楚。 所有 IP 都可以連接到數據庫,但您實際上是否有權在數據庫中讀取/寫入日期?

IE 這可能是權限/特權問題。 我建議仔細檢查用戶權限並確定誰可以在您的數據庫上做什么

此致。 :-)

暫無
暫無

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

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