mysqli_connect错误2002“没有这样的文件或目录” Mac OS 10.13.2

时间:2018-07-14 14:26:50

标签: php mysqli mamp

我知道与此有关的问题已经在Stackoverflow和其他地方被问了无数次,但是,我似乎无法将分辨率归零。

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

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

我已经成功安装并运行了MAMP-我已经使用phpMyAdmin创建了一个简单的数据库-并且我已成功将Tableau连接到该数据库-效果很好。

有了这个功能,我将注意力转移到尝试从浏览器运行php上。输入“ localhost”产生了“有效!”结果。

到目前为止一切都很好,但是这里事情出轨了:我无法使用以下命令(****** =我的根密码)通过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和一个与MAMP的MySQL正常的Tableau连接。我不能做的是从浏览器中运行的php文件连接到MySQL-我收到2002错误。

我还可以提供什么其他信息来帮助解决方案?

1 个答案:

答案 0 :(得分:0)

我找到了解决方法:

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. 在终端窗口中运行此命令:sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock