【问题标题】:Remotely connecting to a MySQL database远程连接到 MySQL 数据库
【发布时间】:2011-01-13 18:10:31
【问题描述】:

我刚刚在网络托管服务上设置了一个 MySQL 数据库,我正在尝试使用以下 php 远程连接到它:

<?php
//Connect To Database
$hostname='113.101.88.97.ukld.db.5513497.hostedresource.com';
$username='myusername';
$password='mypassword';
$dbname='testdb';
$usertable='test';
$yourfield = 'lat';

mysql_connect($hostname,$username, $password) OR DIE ('Unable to connect to database! Please try again later.');
mysql_select_db($dbname);

$query = 'SELECT * FROM ' . $usertable;
$result = mysql_query($query);
if($result) {
    while($row = mysql_fetch_array($result)){
        print $name = $row[$yourfield];
        echo 'Name: ' . $name;
    }
}
else {
print "Database NOT Found ";
mysql_close($db_handle);
}
?>

我对 php 和 MySQL 还很陌生,有些东西我不懂。我已将上述代码保存在一个文件(称为 demo.html)中,并尝试在我的网络浏览器中查看它(它目前不显示任何内容)。

我的托管公司告诉我要连接到我应该使用的数据库

ukld.db.5513497.hostedresource.com

我假设我需要包含 IP 地址(我使用 PhPMyAdmin 登录时看到的),所以我也添加了它。但是,我不知道结构是否正确。

$hostname='113.101.88.97.ukld.db.5510597.hostedresource.com';

【问题讨论】:

  • 目前看起来还不错。怎么了? echo mysql_error(); 产生了什么?
  • 谢谢大家;学过的知识! :)

标签: php mysql


【解决方案1】:

使用提供的域名ukld.db.5510597.hostedresource.com

在主机名前加上 IP 只会更改主机名,这就是连接失败的原因。

主机名将在后台为您转换为 IP 地址。不需要自己做。此外,硬编码 IP 是不好的做法,因为它们会随着时间而改变。

【讨论】:

    【解决方案2】:

    您需要使用任一主机名或 IP 地址,而不是两者。

    如果您有可用的命令行 MySQL 客户端,则可以测试您的连接字符串。

    mysql -u myusername -p -h ukld.db.5510597.hostedresource.com -D testdb
    

    然后它会提示您输入密码。如果连接成功,则将这些设置传输到您的 PHP 应用程序!

    【讨论】:

      【解决方案3】:

      您不需要 IP 地址,只需使用您提供的域名即可。您的服务器将使用 DNS 将其解析为正确的 IP。

      【讨论】:

        【解决方案4】:

        不要将其保存为 HTML 文件。它是一个 PHP 文件。所以保存为demo.php。如果您将其保存为 PHP 文件,它应该会指出错误的位置。

        【讨论】:

          【解决方案5】:

          不需要IP地址试试这个

          <?php
          //Connect To Database
          $hostname='ukld.db.5510597.hostedresource.com';
          $username='myusername';
          $password='mypassword';
          $dbname='testdb';
          $usertable='test';
          $yourfield = 'lat';
          
          mysql_connect($hostname,$username, $password) OR DIE ('Unable to connect to database! Please try again later.');
          mysql_select_db($dbname);
          
          $query = 'SELECT * FROM ' . $usertable;
          $result = mysql_query($query);
          if($result) {
              while($row = mysql_fetch_array($result)){
                  print $name = $row[$yourfield];
                  echo 'Name: ' . $name;
              }
          }
          else {
          print "Database NOT Found ";
          mysql_close($db_handle);
          }
          ?>
          

          【讨论】:

            【解决方案6】:

            您不需要包含 IP 地址

            【讨论】:

              【解决方案7】:

              没有。不要将 IP 地址与主机名混用。您应该只使用主机名进行连接:

              $hostname='ukld.db.5510597.hostedresource.com';
              

              【讨论】:

                【解决方案8】:

                主机名代表一个 IP 地址。
                例如:stackoverflow.com 代表 IP 64.34.119.12。
                如果您 p​​ing 到 stackoverflow.com,IP 64.34.119.12 会回答您。
                这意味着主机可以是IP地址或主机名。
                所以你应该试试 ukld.db.5510597.hostedresource.com 或 173.201.88.97。但不在一起。

                顺便说一句,在大多数情况下,您无法从 html 文件运行 PHP 脚本,请将文件扩展名重命名为 php

                祝你好运!

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2013-08-14
                  • 2020-05-05
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-08-10
                  • 2018-11-23
                  • 2013-02-13
                  相关资源
                  最近更新 更多