【问题标题】:Why can Wordpress suddenly connect to the MySQL database server once I update the host from "localhost" to "mydomain.com"?为什么一旦我将主机从“localhost”更新为“mydomain.com”,Wordpress 会突然连接到 MySQL 数据库服务器?
【发布时间】:2010-10-06 08:07:19
【问题描述】:

这是“无法连接”问题的特定变体。就我而言,我刚刚在我的 httpd.conf 中设置了两个虚拟主机,监听端口 80。声明如下:

名称虚拟主机 *:80 服务器名称 site1.dev DocumentRoot /www/site1 虚拟主机> 服务器名称 site2.dev DocumentRoot /www/site2 虚拟主机>

据我了解,http://localhosthttp://site1.dev 现在都映射到“/www/site1/”,当然http://site2.dev 映射到它的目录。

这一切都很好。我有一个我正在使用的 Wordpress 安装,目前在 site2.dev 域下。我正在尝试将其配置为与我刚刚设置的 MySQL 数据库一起使用,该数据库具有用于“localhost”的帐户“mysql”。因此,在 Wordpress 的配置中,我将该用户名和主机名输入为“localhost”。这不行,所以玩了一会儿之后,我尝试将主机名更改为“site2.dev”,然后它就可以正常工作了。

这里发生了什么?我知道我的虚拟主机已设置好,但我认为它们正在侦听端口 80,而不是端口 3306,这是 MySQL 使用的,那么这有什么关系呢?我相信有一个简单的解释,所以希望有人能启发我。

【问题讨论】:

    标签: mysql apache wordpress virtualhost


    【解决方案1】:

    一个可能的嫌疑人是您的 MySQL 访问控制配置。 yourhost.foo 和 localhost 是完全不同的,就它而言,它总是在咬人。如果 WP 的 MySQL 用户表条目存在且主机键控为 yourhost.foo 但不是 localhost,那么这就是问题所在。

    【讨论】:

    • 你能详细说明一下吗?您所说的 MySQL 访问控制配置到底是什么意思,为什么这两个域在它方面有所不同?
    • 我认为 WP 表中没有任何条目引用一个域而不是另一个域,因为在我开始工作之前我没有更改实时站点备份中的任何内容,但这是一个好点。
    • 这与 WP 中的任何内容无关。 MySQL 有一个名为 mysql 的数据库,其中包含确定用户可以连接到它以及他们可以做什么的表。整个 MySQL GRANT PRIVILEGE 语法就是这样;您可能应该查看它,并查看“mysqldump mysql”的输出。
    • +1 通常就是这样。最好通过 localhost 连接而不是 domain.com,因为这样 MySQL 可以使用更快的本地 unix 套接字而不是 IP 套接字,因此请尝试为 localhost 获取 GRANT。
    • 抱歉,再澄清一点。我有一个用户是“mysql”@“localhost”,这是 WP 正在使用的帐户。该帐户只能通过“localhost”主机访问。我认为这是对的。为什么 WP 配置不能与主机名“localhost”一起使用,而只能与“mydomain.com”一起使用?
    【解决方案2】:

    您是否在设置虚拟主机时编辑了 /etc/hosts 文件?您可能不小心删除了“localhost”条目。

    【讨论】:

    • 在此阶段未更改主机文件。它有两行将 localhost 和 site2.dev 映射到 127.0.0.1。
    【解决方案3】:

    因为您的数据库没有在环回接口 (localhost) 上侦听。

    【讨论】:

      猜你喜欢
      • 2013-08-12
      • 2014-07-14
      • 1970-01-01
      • 2015-04-17
      • 2014-09-27
      • 2019-08-08
      • 1970-01-01
      • 2014-05-04
      • 2012-06-07
      相关资源
      最近更新 更多