Laravel 迁移“没有这样的文件或目录”

Posted

技术标签:

【中文标题】Laravel 迁移“没有这样的文件或目录”【英文标题】:Laravel migration "No such file or directory" 【发布时间】:2019-03-16 13:41:02 【问题描述】:

我最近开始使用 Laravel,并遵循本教程中的每一步: https://www.toptal.com/laravel/restful-laravel-api-tutorial

现在我创建模型并配置了.envdatabase 文件。

.env文件:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=bank
DB_USERNAME=root
DB_PASSWORD=

对我来说,一切似乎都是正确的,MyphpAdmin 正在运行,我已经向其中添加了一个银行数据库。

但每次我尝试迁移时都会收到以下错误:

Illuminate\Database\QueryException: SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schema.tables where table_schema = bank and table_name = migrations)

【问题讨论】:

你试过运行composer update吗? 你安装 php-pdo 扩展了吗? 你试过了吗? (composer dump-autoload): ***.com/questions/43686135/… Php artisan migrate no such file or directory的可能重复 试试composer dump-autoload 【参考方案1】:

我在 .env 文件中添加 DB_SOCKET 引用 my.cnf (socket) 然后运行 ​​php artisan migrate。有效!

DB_SOCKET=/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

并仔细检查您的 config/database.php,如果还有其他 unix_socket 除了这个 'unix_socket' => env('DB_SOCKET', '')

【讨论】:

【参考方案2】:

这看起来与 Laravel 无关,我认为这与 PHP 无法正确连接到 MySQL 有关。看这里 - PHP - MySQL connection not working: 2002 No such file or directory

【讨论】:

我将 php.ini 文件中的默认套接字更改为 pdo_mysql.default_socket=/opt/lampp/var/mysql/mysql.sock 并重新启动了我的 Apache 但它仍然无法工作:(

以上是关于Laravel 迁移“没有这样的文件或目录”的主要内容,如果未能解决你的问题,请参考以下文章

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

如何修复 laravel 作曲家更新问题( Illuminate\Foundation\ComposerScripts::postAutoloadDump 无法打开流:没有这样的文件或目录)

Laravel 8 - SQLSTATE[HY000] [2002] 没有这样的文件或目录

PDOException SQLSTATE[HY000] [2002] 尝试迁移时没有这样的文件或目录

如何在 Laravel 中制作迁移模型

laravel 测试错误,没有这样的文件或目录