【问题标题】:Mysqli: Unknown server hostMysqli:未知的服务器主机
【发布时间】:2011-09-23 00:26:16
【问题描述】:

似乎这是一个很常见的错误,但我无法解决。我正在运行 PHP 5.3.1 外部 MySQL 服务器 5.5.8 - 都安装了 Phpmyadmin 并运行 Windows Server 2k8R2。

当我尝试以下操作时:

   $connection = new mysqli("myhost.com:3306", "myUser", "myPwd", "myDB");
   $result = $connection->prepare("SELECT * FROM tt_staff
                           WHERE crew_type = ?
                           AND inaktiv_vakt = 0
                           ORDER BY ansvarlig_vakt DESC, crew_type, navn_vakt");
   $result->bind_param("s", $value);
   $result->execute();
   $result->bind_result($value, $name);

我得到了“ 警告:mysqli::mysqli() [mysqli.mysqli]: (HY000/2005): Unknown MySQL server host (...)"

我确保在数据库服务器上的 php.ini 中启用了 Mysqli,但这也是我所做的一切,因为有人告诉我这应该可以开箱即用。因为这是我第一次使用准备好的语句,所以很可能在某个地方有一个简单的拼写错误。

【问题讨论】:

  • 您提到您在两者上都有 PhpMyAdmin -- 您可以使用 PhpMyAdmin 从 PHP 框连接到数据库吗?如果是 - 检查您的设置(服务器地址和端口);如果否 - 可能是数据库服务器上的防火墙。

标签: php mysql windows-server-2008 phpmyadmin mysqli


【解决方案1】:

问题是 MySQLi 不接受端口作为主机名的一部分,而是作为单独的参数。所以我认为这就是你应该打开连接的方式:

$connection = new mysqli("myhost.com", "myUser", "myPwd", "myDB", "3306");

或者,可能根本不提供端口,因为 3306 是默认端口。

【讨论】:

  • 这就是解决方案,简单易行。以为我需要端口号,因为我必须使用普通的 MySql 连接来指定它。谢谢:)
【解决方案2】:

检查您的用户 ('myUser') 在数据库上的权限。确保权限允许通过“%”(或您的 IP)进行连接,而不仅仅是“localhost”(127.0.0.1)。然后确保“重新加载权限”。

BlockquoteNote: phpMyAdmin 直接从 MySQL 的权限表中获取用户的权限。如果手动更改了这些表的内容,它们可能与服务器使用的权限不同。在这种情况下,您应该在继续之前重新加载权限。

【讨论】:

    【解决方案3】:

    mysqli找不到数据库服务器,需要检查域和端口号是否正确

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-30
      • 2016-11-05
      • 1970-01-01
      • 1970-01-01
      • 2013-05-27
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      相关资源
      最近更新 更多