【问题标题】:Connecting to a remote mysql server连接到远程 mysql 服务器
【发布时间】:2013-03-02 05:59:47
【问题描述】:

如何在 php 中连接到 the demo phpmyadmin server?我的代码如下所示。

<?php
$host = 'http://demo.phpmyadmin.net/STABLE/';
$dbname = 'shubham';
$user = 'root';
$pass = '';

// Attempt to connect to database.
try {
$DBH = new PDO("mysql:host={$host};dbname={$dbname}", $user, $pass);
} catch(PDOException $e) {
echo $e->getMessage();
}
?>

但我认为这是我的错误

QLSTATE[HY000] [2005] Unknown MySQL server host 'http://www.demo.phpmyadmin.net/STABLE/' (1)

【问题讨论】:

  • 有几件事:1) 服务器是否在默认端口上运行? 2) 你不能通过 HTTP 连接,除非你想看到 PhpMyAdmin。

标签: php mysql phpmyadmin connection


【解决方案1】:

您似乎混淆了两件事:

  • 由 db 服务器和 db/schema 支持的演示 phpMyAdmin 前端
  • 数据库服务器和架构本身

PDO 需要后者,即数据库服务器本身。

检查演示的前端代码,我看不到任何可以为我们提供数据库服务器的实际连接详细信息的内容。这正是我所期望的:我发现很难相信 phpMyAdmin 演示的制造商/维护者会让他们的实际数据库服务器可用于公共远程连接。

【讨论】:

  • 感谢指正。是否有任何可用于公共远程连接的数据库服务器?我只是想展示一个例子。
  • 通常,您会在自己的托管基础​​设施上配置自己的数据库服务器。根据我的经验,大多数共享主机接受远程连接;它们仅将连接限制在其托管环境中的客户端。使用虚拟专用服务器 (VPS) 托管通常是要走的路。我使用过 ServerGrove 并且很满意。但是你确定你真的需要 remote 连接吗?如果您在现有主机上运行演示应用程序,则该空间中的数据库连接不是远程的。如果您使用本地数据库在本地运行它,那么也不是远程的。还是我误会了? ;-)
【解决方案2】:

更改您的主机名

$host = 'http://demo.phpmyadmin.net/STABLE/';

到您的原始远程主机名,例如 eg $host = 'ukld.db.5510597.hostedresource.com';

【讨论】:

    【解决方案3】:

    MySQL 不能在 HTTP 上工作

    <?php
    $host = 'demo.phpmyadmin.net';
    // High chances that this is NOT your mysql hostname.
    // It will not even by like /STABLE/ as you mentioned it.
    $dbname = 'shubham';
    $user = 'root';
    $pass = '';
    
    // Attempt to connect to database.
    try {
    $DBH = new PDO("mysql:host={$host};dbname={$dbname}", $user, $pass);
    } catch(PDOException $e) {
    echo $e->getMessage();
    }
    ?>
    

    【讨论】:

      猜你喜欢
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-13
      • 2017-06-26
      • 2016-12-25
      • 2014-06-29
      • 1970-01-01
      相关资源
      最近更新 更多