mysqli_connect 错误 2002 "No such file or directory" Mac OS 10.13.2

mysqli_connect error 2002 "No such file or directory" Mac OS 10.13.2

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

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

我的目标是使用 MAMP 创建一个开发环境,这样我就可以创建动态网页,并且我想使用 Tableau 从 MySQL.

中分析绘制数据

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

随着它的运行,我将注意力转移到尝试从我的浏览器 运行 php 上。输入 "localhost" 产生了 "It works!" 结果。

到目前为止一切正常,但这里是 rails 的地方:我无法使用以下内容通过 php 文件连接到 MySQL (****** = 我的 root 密码)- 文件名: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);
?>

来自 运行ning Safari 或 Chrome 的 returns - 无关紧要 - 是熟悉的问题:2002 没有这样的文件或目录。

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

以下是我做过的几件事:

  1. 运行 php来自 MAMP 的信息 returns php.ini 的预期路径:/Applications/MAMP/bin/php/php7.2.1/conf
  2. 在那个 php.ini 文件中,mysqli.default_socket 是 /Applications/MAMP/tmp/mysql/mysql.sock 并且那个文件确实存在
  3. 运行 php来自 MAMP 的信息表明 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 项中,我注意到 php来自 MAMP returns 7.2.1 的信息作为版本。但是,当我 运行 来自浏览器的 phpinfo() 脚本时,它 returns 7.1.16。我无法解释为什么这是一个不同的 php 版本,我什至无法在我的机器上找到版本 7.1.16 而且我不确定这些是否真的重要。

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

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

我找到了解决方案:

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

成功连接到 MAMP 的 MySQL。

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

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

有两件事需要提前:

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