Iva*_*ang 6 mysql wordpress azure docker azure-web-app-service
我有一个天蓝色的应用程序服务,使用来自 docker hub 的最新 wordpress 图像。azure应用程序服务的屏幕截图:
然后在 azure 应用程序服务 -> 应用程序设置中,我添加了以下键/值对,这些键/值对将用于连接 mysql 的 Azure 数据库:
在我的 Azure mysql 数据库中,我启用了公共访问/允许从任何 azure 服务进行公共访问/还添加了我的客户端 IP 和此 IP 范围 0.0.0.0 - 255.255.255.255。我可以从我的客户端访问它并创建将由 azure 应用程序服务使用的数据库。截图如下:
在服务器参数中,我还关闭了 require_secure_transport 设置:
最后,我尝试启动该网站,但它抛出错误“建立数据库连接时出错”,截图如下:
我是 wordpress / docker 的新手,不知道如何解决这个问题。我还查看了一些视频/文档,没有看到任何其他配置差异。您能指导我如何解决这个问题吗?非常感谢。
您收到此错误消息。
警告:mysqli_real_connect():(HY000/1045)>:用户'ivan'@'52.xx.xxx.xx'的访问被拒绝(使用密码:YES)
这意味着 MySQL 接收、处理并拒绝了您的 WordPress 实例的连接尝试。因此,您知道主机名是正确的,并且您的云提供商的防火墙设置允许您的 WordPress 实例与 MySQL 实例交换网络数据。
怎么了?
MySQL 的用户名/帐户名设置有一个怪癖。帐户名称可以类似于'ivan'@'localhost'
或'ivan'@'%'
(甚至类似于'ivan'@'192.0.22.33'
)。
第一个仅允许从本地主机登录(或通过 ssh 隧道)。第二个允许从 登录'%'
,即任何主机。您的 WordPress 实例需要第二个才能访问 MySQL。
当您从计算机登录到 MySQL 时,请执行此操作。
SELECT host, user FROM mysql.user WHERE user='ivan';
Run Code Online (Sandbox Code Playgroud)
您应该看到两行,如下所示
host user
---- ---
% ivan
localhost ivan
Run Code Online (Sandbox Code Playgroud)
可能是'%'
作为主机的帐户丢失了。如果是这样,则意味着您需要创建另一个 MySQL 帐户并授予其访问您的数据库的权限。像这样做。
SELECT host, user FROM mysql.user WHERE user='ivan';
Run Code Online (Sandbox Code Playgroud)
接下来,确保您刚刚创建的用户帐户(您的 WordPress 软件将使用该帐户连接到 MySQL)可以访问您的数据库。
host user
---- ---
% ivan
localhost ivan
Run Code Online (Sandbox Code Playgroud)
如果您仍然收到错误消息,则您帐户的密码可能与'ivan'@'%'
您在 WordPress 配置中输入的密码不匹配。你可以改变它
CREATE USER 'ivan'@'%' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
Run Code Online (Sandbox Code Playgroud)
如果仍然给出相同的错误消息,则您的云供应商可能需要 TLS 才能连接到 MySQL。您可能需要咨询他们的支持团队。
(这是设置新 WordPress 实例的常见障碍。)
归档时间: |
|
查看次数: |
1326 次 |
最近记录: |