У меня установлены MySQL 8 и Laravel 5.6.18; когда я пытаюсь запустить миграцию с помощью:php artisan migrate
Пример моих миграций:
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->string('nombre')->unique()->index();
$table->string('descripcion', 500);
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')
->onDelete('cascade')
->onUpdate('cascade');
$table->timestamps();
});
Комментарий: порядок моих миграций правильный, то есть сначала у меня есть пользователи миграции, затем категории, а затем сообщения.
Однако я получаю следующую ошибку
PDOException::("PDO::__construct(): Сервер запросил неизвестный клиенту метод аутентификации [caching_sha2_password]").
Следует отметить, что с версией 5.7 Mysql я выполняю миграции без каких-либо проблем.
Проблема в том, что вы изменили аутентификацию по умолчанию в MySQL 8, что вызывает эту ошибку.
Для ее решения предлагается выполнить следующие строки, или только первую их часть, в зависимости от случая, очевидно, вы должны заменить
user
ypassword
на соответствующие значения:Это сработало для меня:
Сначала я создал нового пользователя:
Затем я настроил файл config/database.php ( https://github.com/laravel/framework/pull/23948 ):
И, наконец, я настроил .env :
Умный!!!
Для MySql 8 я решил это, изменив метод аутентификации в конфигурации во время процесса установки. Пребывание следующим образом:
У меня сработала команда sql
и прочитайте обзор