【问题标题】:mysqli_connect error 2002 "No such file or directory" Mac OS 10.13.2mysqli_connect 错误 2002“没有这样的文件或目录”Mac OS 10.13.2
【发布时间】:2018-12-22 17:41:24
【问题描述】:

我知道与此相关的问题已在 Stackoverflow 和其他地方被问了无数次,但是,我似乎无法在解决方案上归零。

我正在使用运行 OS 10.13.6 High Sierra 的几乎全新的 Macbook 13。

我的目标是使用 MAMP 创建一个开发环境,以便我可以创建动态网页,并且我想使用 Tableau 进行分析,从 MySQL 中提取数据。

我已成功安装并运行 MAMP - 我已使用 phpMyAdmin 创建了一个简单的数据库 - 我已成功将 Tableau 连接到该数据库 - 这非常有效。

在运行之后,我将注意力转移到尝试从浏览器运行 php。输入“localhost”会产生“It works!”结果。

到目前为止一切都很好,但事情出轨了:我无法使用以下内容(****** = 我的根密码)通过 php 文件连接到 MySQL - 文件名:test_connect0.php:

<?php
$link = mysqli_connect("localhost", "root", "*****");

if (!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL ."<br>";
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL ."<br>";
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL ."<br>";
    exit;
}
echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
mysqli_close($link);
?>

从运行 Safari 或 Chrome 中返回的结果 - 没关系 - 是熟悉的问题:2002 没有这样的文件或目录。

相信我,我已经在互联网上搜索了所有解决方案,我相信我已经尝试了每个人都无济于事。

以下是我做过的一些事情:

  1. 从 MAMP 运行 phpInfo 会返回到 php.ini 的预期路径:/Applications/MAMP/bin/php/php7.2.1/conf
  2. 在那个 php.ini 文件中,mysqli.default_socket 是 /Applications/MAMP/tmp/mysql/mysql.sock 并且该文件确实存在
  3. 从 MAMP 运行 phpInfo 表明 php 版本是 7.2.1
  4. 在 /etc/apache2 中,我编辑了 httpd.conf 并取消了 LoadModule php7_module libexec/apache2/libphp7.so 的注释
  5. 我尝试了多种不同的方式来运行 test_connect0.php 文件: localhost/test_connect0.php localhost:3306/test_connect0.php 127.0.0.1/test_connect0.php 127.0.0.0/test_connect0.php

观察:在上面的第 3 项中,我注意到 MAMP 中的 phpInfo 返回 7.2.1 作为版本。但是,当我从浏览器运行 phpinfo() 脚本时,它会返回 7.1.16。我无法解释为什么这是一个不同的 php 版本,我什至无法在我的机器上找到 7.1.16 版本,而且我不确定这些是否真的重要。

总而言之,我有一个功能性 MAMP 和一个功能性 Tableau 连接到 MAMP 的 MySQL。我不能做的是从浏览器中运行的 php 文件连接到 MySQL - 我收到 2002 错误。

我还可以提供哪些其他信息来帮助归零解决方案?

【问题讨论】:

    标签: php mysqli mamp


    【解决方案1】:

    我找到了解决办法:

    PHP 脚本修复: 最初,我的 test_connect0.php 脚本位于 /Library/WebServer/Documents 中。事实证明,它需要在 /Applications/MAMP/htdocs 中。将文件移动到该位置后,我在浏览器中输入了以下网址:localhost:8888/test_connect0.php

    这导致成功连接到 MAMP 的 MySQL。

    Tableau 注释: 正如我之前提到的,我能够将 Tableau 连接到 MySQL,但是,它没有连接到 MAMP 的 MySQL。为了让 Tableau 看到 MAMP 的 MySQL,我在 Tableau 的对话框中输入了以下内容:

    服务器:本地主机 端口:8888 用户名:root 密码:******

    提前两件事是必要的:

    1. 按照 Tableau 的说明安装 OBDC 驱动程序
    2. 在终端窗口中运行:sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock

    【讨论】:

      猜你喜欢
      • 2021-01-09
      • 2020-05-24
      • 2018-05-25
      • 1970-01-01
      • 2017-04-15
      相关资源
      最近更新 更多