【问题标题】:PHP, can't connect to the MySQL serverPHP,无法连接到 MySQL 服务器
【发布时间】:2014-05-30 21:16:51
【问题描述】:

以下问题可能是什么原因。

如果我从 PHP 函数 mysql_connect() 执行它,它可以正常工作 command line (php -r "mysql_connect('127.0.0.1', 'db_user', 'db_pass');")

对于作为 Apache 模块运行的 PHP,使用相同参数的相同调用会失败。

MySQL 服务器正在远程运行,使用 SSH 转发到它的连接:ssh -fN -L 3306:localhost:3306 remote_host

有什么想法可能是错的吗?

【问题讨论】:

  • mysql_connect() 已贬值,您应该尝试使用mysqli_connect()
  • "fails" 在这里没有帮助。这意味着什么?你有错误吗?那是什么?你什么都得不到吗?日志文件说什么?当您尝试连接时,宇宙会内爆吗?啊!

标签: php apache ssh


【解决方案1】:

您将希望考虑使用 MySQLi 或 PDO,因为旧的 MySQL 函数已被弃用。

这应该可以帮助您入门:

<?php
//establish conection
$link = mysqli_connect("host","user","pass","bd") or die("Error: " . mysqli_error($link));

$query = "SELECT name FROM mytable" or die("Error: " . mysqli_error($link));

//execute query
$result = $link->query($query);

//display information
while($row = mysqli_fecth_array($result)) {
  echo $row["name"] . "<br>";
} 
?>

【讨论】:

    【解决方案2】:

    根据您的问题和详细信息,我会说 MySQL 服务器拒绝连接到您的 Web 服务器(无论它在哪里),因为连接不安全(以一种或另一种方式)。如果您想像从命令行一样轻松地通过 Apache 中的 PHP 模块进行连接,请设置您的连接,以便解决所有加密/隧道问题。这就是我会做的。

    但是,请确保以下行是正确的..

    mysql_connect('127.0.0.1', 'db_user', 'db_pass');"
    

    您是否指向正确的服务器?我以为你说 MySQL 服务器是远程的。此行表明您正在尝试连接到与 Web 服务器在同一台机器上运行的本地虚拟 MySQL 服务器。尝试获取 MySQL 服务器的 IP 或域名并改用它(即在您的 Web 代码中)。

    【讨论】:

      猜你喜欢
      • 2015-05-10
      • 2012-11-03
      • 2015-02-12
      • 2015-01-22
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多