【发布时间】:2021-06-30 20:23:06
【问题描述】:
在安装 ddev、Docker 和 MAMP 之后,我刚刚在本地 Mac 上安装了 Laravel。我使用了https://ddev.readthedocs.io/en/stable/users/cli-usage/#laravel-quickstart 指南,一切看起来都不错。但是,当我尝试运行从 Internet 下载的示例代码时,我开始收到错误消息
Illuminate \ Database \ QueryException (2002)
SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from `users` where `email` = frankie@example.com limit 1)
一开始,我认为这与内部 Lavavel 错误有关,因为我看到电子邮件地址没有任何引号。但是,我尝试从我从 MAMP 获取的这个 PHP 脚本连接到 MySQL(通过网络连接到 MySQL 部分)
<?php
$db_host = 'localhost';
$db_user = 'root';
$db_password = 'root';
$db_db = 'information_schema';
$db_port = 8889;
$mysqli = new mysqli(
$db_host,
$db_user,
$db_password,
$db_db
);
if ($mysqli->connect_error) {
echo 'Errno: '.$mysqli->connect_errno;
echo '<br>';
echo 'Error: '.$mysqli->connect_error;
exit();
}
echo 'Success: A proper connection to MySQL was made.';
echo '<br>';
echo 'Host information: '.$mysqli->host_info;
echo '<br>';
echo 'Protocol version: '.$mysqli->protocol_version;
$mysqli->close();
?>
当我意识到我无法从 MAMP (MySQL 5.7.32) 上运行的任何 PHP 脚本/代码连接到 MySQL 时。这是我得到的错误:
Errno: 2002
Error: No such file or directory
然后在阅读了此处的其他类似问题后,我将 localhost 更改为 127.0.0.1 并收到了这条新消息
Errno: 2002
Error: Connection refused
注意事项: MySQL 正在监听端口 8889
文件/Applications/MAMP/tmp/mysql/mysql.sock存在
用户名和密码正确
数据库也存在
我的第一个想法是电子邮件地址缺少引号,这就是我在SQL/Laravel is not quoting text fields when building a query 写下我最初的问题的原因。然而,真正的问题是关于尝试连接到 MySQL 服务器
【问题讨论】: