MySQL сервер пропал ошибка во время установки миграции (laravel)

Поэтому я использую свой cmd в своей папке laravel, и я попытался это сделать (php artisan migrate: install). 2 ошибки пришли.

  1. [PDOException] SQLSTATE [HY000] [2006] MySQL сервер ушел

  2. [ErrorException] PDO :: __ construct (): сервер MySQL удален

Может кто-нибудь объяснить, что я сделал не так?

5

Решение

Это не проблема Laravel, а общая проблема MySQL. Возможно, сервер не работает. Вы уверены, что используете MySQL в фоновом режиме?

Проверьте эту ссылку: MySQL ушел

Выполните следующие проверки в вашей системе:

  1. Database Engine работает
  2. Вы создали свою базу данных
  3. Вы создали пользователя и предоставили разрешения для базы данных
  4. Вы настроили пользователя и базу данных в файле .env вашего Laravel.

После этого попробуйте снова запустить команду migrations, которая:

php artisan migrate

Как объяснил Вот

Дайте нам знать, если это поможет :).

3

Другие решения

Вы потеряли соединение SQL с сервером во время запроса. Это временно проблема. Это из-за очень низкой настройки по умолчанию max_allowed_packet,

привлечение max_allowed_packet в my.cnf (под [mysqld]) до 8 или 16M обычно исправляет это.

[mysqld]
max_allowed_packet=16M

НОТА: Это может быть установлено на вашем сервере, когда он работает. Вам нужно restart служба MySQL, как только вы закончите.

Использование: set global max_allowed_packet=104857600, Мое значение устанавливает его на 100 МБ.

2

Для меня проблема заключалась в том, что я назначил неправильный порт для моего проекта Laravel .env файл. Позже, когда я сопоставил его с my.cnf файл, это сработало.

Я использую Ubuntu 16.04 + nginx + MariaDB + Laravel.

1

В моем случае проблема была я изменился DB_HOST в localhost но это было исправлено, сохранив его default т.е. 127.0.0.1 и порт по умолчанию 3306,
Вот конфигурация для localhost в xampp:

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

Хотя я пользуюсь localhost:8081/phpmyadmin чтобы получить доступ к моему db

0

Если кто-то ищет решение, попробуйте очистить весь имеющийся у вас кеш, вы можете вручную удалить файлы кеша в начальная загрузка / кэш папка. Не трогайте package.php и services.php.

0

В config / database.php вам нужно изменить файл
от

'mysql' => [
'driver'    => 'mysql',
'host'     => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset'   => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix'    => '',
'strict'    => false,
]

в

 'mysql' => [
'driver'    => 'mysql',
'host'      => 'localhost',
'database'  => 'laravel',
'username'  => 'root',
'password'  => '',
'charset'   => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix'    => '',
'strict'    => false,
],

Надеюсь это сработает

-1

Я столкнулся с этой проблемой в моем приложении laravel, и даже когда я пытался соединиться с vanilla PHP, я получал это сообщение об ошибке

  • используя mysqli

    Предупреждение PHP: mysqli :: __ construct (): непредвиденное изменение сервера во время
    делает caching_sha2 auth: 109

  • используя PDO

    Предупреждение PHP: необработанное исключение PDO: PDO :: __ construct (): неожиданно
    восстановление сервера при выполнении caching_sha2 auth: 21 в коде оболочки php: 1

Я считаю, что PHP все еще не поддерживает этот способ аутентификации

Laravel версия 5.6
Моя версия PHP 7.2.10
MySQL версия 8.0.13

Чтобы решить эту проблему, я удалил MySQL, а затем установить его
и выберите эту опциюиспользовать устаревший метод аутентификации (сохранить совместимость с MySQL 5.x)

использовать устаревший метод аутентификации (сохранить совместимость с MySQL 5.x)

-1
По вопросам рекламы [email protected]