【发布时间】: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 没有这样的文件或目录。
相信我,我已经在互联网上搜索了所有解决方案,我相信我已经尝试了每个人都无济于事。
以下是我做过的一些事情:
- 从 MAMP 运行 phpInfo 会返回到 php.ini 的预期路径:/Applications/MAMP/bin/php/php7.2.1/conf
- 在那个 php.ini 文件中,mysqli.default_socket 是 /Applications/MAMP/tmp/mysql/mysql.sock 并且该文件确实存在
- 从 MAMP 运行 phpInfo 表明 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 项中,我注意到 MAMP 中的 phpInfo 返回 7.2.1 作为版本。但是,当我从浏览器运行 phpinfo() 脚本时,它会返回 7.1.16。我无法解释为什么这是一个不同的 php 版本,我什至无法在我的机器上找到 7.1.16 版本,而且我不确定这些是否真的重要。
总而言之,我有一个功能性 MAMP 和一个功能性 Tableau 连接到 MAMP 的 MySQL。我不能做的是从浏览器中运行的 php 文件连接到 MySQL - 我收到 2002 错误。
我还可以提供哪些其他信息来帮助归零解决方案?
【问题讨论】: