Php 运行迁移时“没有这样的文件或目录”或“不知道这样的主机”

Php 运行迁移时“没有这样的文件或目录”或“不知道这样的主机”,php,mysql,laravel,laravel-artisan,Php,Mysql,Laravel,Laravel Artisan,我从名为Laravel的Laravel 5.4数据库中删除了迁移表。运行php artisan migrate:install时,出现以下错误: [照亮\数据库\查询异常] SQLSTATE[HY000][2002]没有这样的文件或目录 SQL:从信息_schema.tables中选择*,其中table_schema=laravel 和表_name=迁移 我删除并重新创建了数据库。我还运行了composer更新。不走运。我可以在phpMyAdmin中运行命令并手动创建表 这个问题有时也会出现类似

我从名为Laravel的Laravel 5.4数据库中删除了迁移表。运行php artisan migrate:install时,出现以下错误:

[照亮\数据库\查询异常] SQLSTATE[HY000][2002]没有这样的文件或目录 SQL:从信息_schema.tables中选择*,其中table_schema=laravel 和表_name=迁移 我删除并重新创建了数据库。我还运行了composer更新。不走运。我可以在phpMyAdmin中运行命令并手动创建表

这个问题有时也会出现类似的错误:

[照亮\数据库\查询异常] SQLSTATE[HY000][2002]php_network_getaddresses:getaddrinfo失败:未知此类主机。 SQL:从信息_schema.tables中选择*,其中table_schema=laravel 表名称=迁移,表类型=基本表 [照亮\数据库\查询异常] SQLSTATE[HY000][2002]php_network_getaddresses:getaddrinfo失败:名称或服务未知 SQL:从信息_schema.tables中选择*,其中table_schema=laravel 表名称=迁移,表类型=基本表
如果在.env文件中使用localhost作为数据库主机,请将其更改为127.0.0.1,然后运行php artisan config:clear,然后再次尝试php artisan migrate:install。

发布我自己问题的解决方案:


我删除了文件夹并重新创建了代码库,确保将我的环境指向正确的数据库服务器。这次成功了。我不知道到底是什么原因导致了原始错误。

以下是我对.env文件的建议:

然后在Database.php中添加文件夹位置:

'unix_socket' => env('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),
最后,尝试:

php artisan config:clear
php artisan migrate:install

在某些情况下,这可能是因为mysql服务器未运行。我使用Laravel5.7并重新启动mysql服务器解决了这个问题。对于ubuntu,请检查mysql服务器服务mysql状态。您可以使用命令服务mysql restart重新启动mysql服务器

我正在macOS上使用MAMP,在将localhost编辑为127.0.0.1并将port编辑为8888之后,通过添加以下命令修复了此问题

'unix_socket'=>env'DB_socket','Applications/MAMP/tmp/mysql/mysql.sock'


配置/database.php文件。

如果您使用的是免费版本的MAMP并不总是必需的MAMP Pro,那么最好将其添加到您的.env文件中:

这假设您的MAMP安装在/Applications/MAMP,当然是默认设置


信用证:@Uncoke在这个问题上的评论我通过在.env文件中设置环境变量解决了这个问题:

DB_CONNECTION=mysql DB_HOST=mysql DB_端口=3306
实际上我刚从DB_HOST=127.0.0.1改为DB_HOST=mysql

这很有效。这回答了你的问题吗?非常感谢。你是救生员为什么localhost在SequelAce中工作而不是在.env中工作?
php artisan config:clear
php artisan migrate:install
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock