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 没有这样的文件或目录。
相信我,我已经在互联网上搜索了所有的解决方案,我相信我已经尝试了每一个都无济于事。
以下是我做过的几件事:
- 运行 php来自 MAMP 的信息 returns php.ini 的预期路径:/Applications/MAMP/bin/php/php7.2.1/conf
- 在那个 php.ini 文件中,mysqli.default_socket 是 /Applications/MAMP/tmp/mysql/mysql.sock 并且那个文件确实存在
- 运行 php来自 MAMP 的信息表明 php 版本是 7.2.1
- 在 /etc/apache2 中,我编辑了 httpd.conf 并取消注释 LoadModule php7_module libexec/apache2/libphp7.so
- 我尝试了多种不同的方法来 运行 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
密码:******
有两件事需要提前:
- 按照 Tableau 的说明安装 OBDC 驱动程序
- 运行 在终端中 window: sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock
我知道与此相关的问题已在 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 没有这样的文件或目录。
相信我,我已经在互联网上搜索了所有的解决方案,我相信我已经尝试了每一个都无济于事。
以下是我做过的几件事:
- 运行 php来自 MAMP 的信息 returns php.ini 的预期路径:/Applications/MAMP/bin/php/php7.2.1/conf
- 在那个 php.ini 文件中,mysqli.default_socket 是 /Applications/MAMP/tmp/mysql/mysql.sock 并且那个文件确实存在
- 运行 php来自 MAMP 的信息表明 php 版本是 7.2.1
- 在 /etc/apache2 中,我编辑了 httpd.conf 并取消注释 LoadModule php7_module libexec/apache2/libphp7.so
- 我尝试了多种不同的方法来 运行 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 密码:******
有两件事需要提前:
- 按照 Tableau 的说明安装 OBDC 驱动程序
- 运行 在终端中 window: sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock /tmp/mysql.sock