我相信我已经成功地将我的(非常基本的)站点部署到fortrabbit,但是一旦我连接到SSH运行一些命令(如php artisan迁移
或php artisan db:种子
),我就会出错留言:
[PDOException]
SQLSTATE[HY000] [2002] No such file or directory
在某种程度上,迁移肯定是有效的,因为我的表就在那里——但这并不能解释为什么它现在对我不起作用。
我遇到了同样的问题,我正在运行MacOSX10.10Yosemite。我已经启用了操作系统附带的Apache服务器和PHP。然后我刚刚配置了mCrypt库以开始。之后,当我使用模型和DB时,我得到了错误:
[PDOException]
SQLSTATE[HY000] [2002] No such file or directory
我发现的原因仅仅是因为PHP和MySQL不能自己连接。为了解决这个问题,我遵循以下步骤:
>
打开一个终端并连接到mysql:
mysql -u root -p
它将要求您输入相关密码。获得mysql promt后,键入下一个命令:
mysql> show variables like '%sock%'
你会得到这样的结果:
+-----------------------------------------+-----------------+
| Variable_name | Value |
+-----------------------------------------+-----------------+
| performance_schema_max_socket_classes | 10 |
| performance_schema_max_socket_instances | 322 |
| socket | /tmp/mysql.sock |
+-----------------------------------------+-----------------+
保留最后一行的值:
/tmp/mysql.sock
在您的laravel项目文件夹中,查找配置DB连接参数的database.php文件。在mysql部分末尾添加下一行:
'unix_socket' => '/tmp/mysql.sock'
你必须有这样的东西:
'mysql' => array(
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'SchoolBoard',
'username' => 'root',
'password' => 'venturaa',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'unix_socket' => '/tmp/mysql.sock',
),
现在只需保存更改,并重新加载页面,它必须工作!
错误消息表示尝试通过套接字进行MySQL连接(不受支持)。
在Laravel(工匠)的上下文中,您可能希望使用不同的/正确的环境。例如:php工匠迁移--env=生产
(或任何环境)。看这里。
Laravel 4:将app/config/database.php
文件中的“主机”从“localhost”更改为“127.0.0.1”
Laravel 5:将.env
文件中的“DB_HOST”从“localhost”更改为“127.0.0.1”
我也有同样的问题。上述解决方案对我都不起作用。通过将/app/config/database.php文件中的“host”从“localhost”更改为“127.0.0.1”,我解决了这个问题。
不知道为什么默认情况下“localhost”不起作用,但我在一篇Symfony2帖子中解决的一个类似问题中找到了这个答案。https://stackoverflow.com/a/9251924/1231563
更新:一些人问为什么这个修复程序有效,所以我对这个主题做了一些研究。就像这篇文章中解释的那样,他们似乎使用了不同的连接类型https://stackoverflow.com/a/9715164/1231563
这里出现的问题是“localhost”使用UNIX套接字,在标准目录中找不到数据库。然而,127.0.0.1使用TCP(传输控制协议),这实质上意味着它通过计算机上的本地互联网运行,在这种情况下比UNIX套接字可靠得多。
问题内容: 我相信我已经将我的(非常基本的)站点成功部署到了fortrabbit,但是一旦我连接到SSH以运行一些命令(例如或),我就会收到一条错误消息: 在某个时候,迁移肯定已经成功了,因为我的表在那里-但这不能解释为什么它现在对我不起作用。 问题答案: 错误消息表明尝试了通过套接字的MySQL连接(不支持)。 在Laravel(工匠)的背景下,您可能想要使用其他/正确的环境。例如:(或任何环境
问题内容: 我正在尝试在Mac上安装香草论坛,为此,我刚刚从MySQL命令行创建了一个数据库和一个用户: 因此,我尝试使用以下代码进行连接: 但不幸的是,我收到一条错误消息 警告:mysqli_connect():(HY000 / 2002):在第3行的/Users/kramer65/Sites/vanilla/info.php中没有这样的文件或目录无法连接到MySQL:没有这样的文件或目录 知道
我试图在我的Mac上安装vanilla forums,为此我刚从MySQL命令行创建了一个数据库和一个用户: 所以我尝试使用以下代码进行连接: 但不幸的是,我有一个错误说 警告:mysqli_connect():(HY000/2002):第3行/users/kramer65/sites/vanilla/info.php中没有这样的文件或目录无法连接到mysql:没有这样的文件或目录 知道我哪里错了
我已经有一个在我的本地主机与数据库工作的laravel项目。但当我使用GCP应用程序引擎时,我遵循数据库连接的步骤。我已经在云中创建了mysql数据库,并从工作的本地数据库导入了所有sql。当我部署应用程序时,显示SQLSTATE[HY000][2002]下面没有这样的文件或目录是我的应用程序。yaml文件内容
当我尝试使用“php artisan migrate”命令迁移Laravel 5中的表时,出现以下错误: “SQLSTATE[HY000][2002]中没有此类文件或目录…”/供应商/laravel/framework/src/light/Database/Connectors/Connector。菲律宾:47 我的. env文件包含以下默认设置: 我的数据库。php文件将mysql列为默认数据库
问题内容: 我正在使用Docker创建一个容器来测试我的Mac上基于PHP和MySQL构建的Web应用程序。我的PHP应用是使用无脂肪框架进行MVC和路由构建的。我有两个Dockerfile,一个用于MySQL,一个用于PHP。我已经成功使用了测试Docker应用程序,因此我相信我的映像已正确安装。 错误的主要部分: 请注意,如果我使用而不是进行连接,则会收到一个稍微不同的错误,该错误表示: 我的