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
现在我创建模型并配置了.env
和database
文件。
.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] 没有这样的文件或目录