Laravel: Нет такого файла или каталога (SQL: создавать таблицы "миграции")

Я удалил таблицу 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)

Я удалил и обновил базу данных. Я также запустил composer update. Неудачно. Я могу запустить команду в phpMyAdmin и создать таблицу вручную.

Ответ 1

Если вы используете localhost качестве вашего хоста базы данных, измените его на 127.0.0.1, затем запустите php artisan config:clear и теперь попробуйте выполнить php artisan config:clear php artisan migrate:install again.

Ответ 2

Вот что я рекомендую для файла .env:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306

Затем в Database.php добавьте расположение папки:

'unix_socket' => env('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),

Наконец, попробуйте:

php artisan config:clear
php artisan migrate:install

Ответ 3

Возможно, попробуйте следующие команды

Откат:

php artisan migrate:rollback

Или сброс с использованием:

php artisan migrate:reset

или сделать обновление:

php artisan migrate:refresh

Ответ 4

Если вы используете localhost качестве хоста базы данных,
измените его на 127.0.0.1, затем запустите php artisan config:clear
и теперь попробуйте php artisan migrate:install снова.

Ответ 5

Я удалил папку и воссоздал базу кода, указав свою среду на правильный сервер базы данных. На этот раз это сработало. Я не знаю точно, что пропало, чтобы вызвать исходную ошибку.

Ответ 6

Я работаю с Mamp, поэтому мой Unix Socket предоставляется:

localhost:/Applications/MAMP/tmp/mysql/mysql.sock

Связывая laravel с базой данных, я также получаю ошибку сверху. Мое решение состояло в том, чтобы взять сокет без "localhost:" (это локальная установка)

Поэтому попробуйте Socket: /Applications/MAMP/tmp/mysql/mysql.sock

Ответ 7

В некоторых случаях это может произойти, потому что сервер MySQL не работает. Это случилось со мной, используя Laravel 5.7, и перезапуск сервера MySQL решил это. Для Ubuntu проверьте состояние сервера service mysql status. Вы можете перезапустить MySQL-сервер, используя команду service mysql restart

Ответ 8

Я использую MAMP на macOS и после редактирования localhost на 127.0.0.1 и переноса на 8888 эта проблема исправлена путем добавления следующего

'unix_socket' => env('DB_SOCKET', '/Applications/MAMP/tmp/mysql/mysql.sock'),

в файл config/database.php.