Laravel:没有这样的文件或目录(SQL:create table`transrations`)

Jay*_*enu 14 laravel artisan laravel-5.4

migrations从一个名为Laravel 5.4的数据库中删除了该表laravel.当我跑php artisan migrate:install,我得到这个错误:

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

我删除并重新创建了数据库.我也跑了composer update.没运气.我可以在phpMyAdmin中运行该命令并手动创建表.

Cam*_*ilo 24

如果您localhost用作数据库主机,请将其更改为127.0.0.1,然后运行php artisan config:clear,现在再试php artisan migrate:install一次.

  • 为什么 `localhost` 在 SequelAce 中可以工作,但在 `.env` 中不行? (3认同)
  • 您是否在.env文件中检查了数据库凭据? (2认同)
  • 从`.env`中删除`DB_HOST`也可以 (2认同)

ahm*_*ira 7

我通过在文件中设置环境变量解决了这个问题.env

DB_CONNECTION=mysql 
DB_HOST=mysql 
DB_PORT=3306 
Run Code Online (Sandbox Code Playgroud)

实际上我只是从DB_HOST=127.0.0.1改为DB_HOST=mysql


Jam*_*ing 6

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

DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)

/Applications/MAMP当然假设您的 MAMP 安装是(默认)。

信用:@Uncoke 在这个问题中的评论


kal*_*azy 5

这是我推荐的.env文件:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
Run Code Online (Sandbox Code Playgroud)

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

'unix_socket' => env('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),
Run Code Online (Sandbox Code Playgroud)

最后,尝试:

php artisan config:clear
php artisan migrate:install
Run Code Online (Sandbox Code Playgroud)