【问题标题】:Trouble Connection to phpMyAdmin MySQL database连接到 phpMyAdmin MySQL 数据库时出现问题
【发布时间】:2014-01-03 22:18:17
【问题描述】:

我是 php 的新手,每当我尝试加载需要访问我在 phpMyAdmin

上设置的数据库的 php 页面时都会遇到错误

这是错误:

数据库连接失败:无法连接到本地 MySQL 服务器 通过套接字'/tmp/mysql.sock' (46) (2002)

我用于连接的代码是这样的:

<?php
define("DB_SERVER", "localhost");
define("DB_USER", "xxxx");
define("DB_PASS", "xxxx");
define("DB_NAME", "tester");

$connection = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);

// Test if connection occurred.
if(mysqli_connect_errno()) {
    die("Database connection failed: " .
        mysqli_connect_error() .
        " (" . mysqli_connect_errno() . ")"
    );
}
?>

我按照托管我网站的网站的说明在我的服务器上设置了 phpMyAdmin,所以我很确定我做得对。

我之前使用 WAMP 能够让数据库在我的计算机上运行,​​但这是我第一次真正尝试让所有东西都在线运行,所以我不知道如果这对我来说是一个愚蠢的错误,或者是更大的错误。

我也不知道什么是套接字,所以我不确定如何解决这个问题。

感谢您的帮助!!

【问题讨论】:

    标签: php mysql database phpmyadmin database-connection


    【解决方案1】:

    您必须找到一种方法来连接到您的 MySQL 实例。有两种方式,TCP(网络,即使该网络地址是 127.0.0.1)和套接字(如 /var/run/mysqld/mysql.sock 之类的文件)。通常,MySQL 开箱即用地配置为同时监听两者,而且通常两者之间几乎没有区别。创建或编辑与连接类型匹配的权限时必须小心,用户 bob@localhost 与用户 bob@127.0.0.1 不同。我倾向于使用套接字,这也是您的脚本默认尝试执行的操作。你可以告诉它通过 TCP 连接,但告诉它正确的套接字路径同样容易。

    无论如何,对我来说,最快的解决方法是尝试命令行工具。如果您可以在命令行执行mysql -u root -p 并获得 MYSQL> shell 提示符,请输入“STATUS”并查找 Connection 行,该行可能通过 UNIX 套接字读取 Localhost;再往下一点,您可能会看到像“UNIX socket: /var/run/mysqld/mysql.sock”这样的行,在这种情况下,您只需告诉您的 PHP 脚本或全局 PHP 配置有关套接字路径,因为现在它正在查找/tmp/mysql.sock 不存在。

    您也可以在登录 phpMyAdmin 时看到这一点,它应该在页面的右侧显示一些“数据库服务器”信息——在此处查找“服务器”行,它可能显示为“phpMyAdmin 演示” - MySQL(通过 TCP/IP 的 192.168.30.23”(明确表明您正在通过 TCP 连接)。

    无论如何,无论您使用哪种方法来查找套接字路径或决定使用 TCP 网络,请参阅PHP manual page 了解有关使用该方法进行连接的信息。您也可以在 php.ini 中为套接字设置全局路径(我建议您这样做),然后您不必在每个脚本中手动设置它,因为它只使用 php.ini 设置作为默认。您可能需要设置 pdo_mysql.default_socket、mysql.default_socket 和 mysqli.default_socket 的每个值(尽管在您的代码中您只使用 mysqli,所以从技术上讲,您只需要设置最后一个值......但为什么要冒险用诸如“为什么 mysqli 会工作但 pdo 失败?”之类的问题让你未来的自己感到困惑——现在把它们都设置好,不用担心)。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      这要么意味着您没有访问 phpMyAdmin 的权限,要么意味着该套接字不存在。尝试重新安装 phpMyAdmin。

      【讨论】:

      • 我尝试重新安装,但我得到了同样的错误。我知道我有权访问 phpMyAdmin,因为我可以访问它的网页并创建数据库。我不确定套接字实际上是什么......
      • 从发布的 PHP 代码中获取该错误对我来说听起来不像是 phpMyAdmin 问题;事实上,最初的问题表明可以在 phpMyAdmin 中创建数据库,所以这不是连接问题所在。
      猜你喜欢
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      • 2021-11-22
      • 2011-11-04
      • 2020-11-26
      • 1970-01-01
      • 2013-03-05
      相关资源
      最近更新 更多