The server requested authentication method unknown to the client [caching_sha2_password]

У меня есть установленные 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();
        });

Я комментирую: порядок моих миграций правилен а именно сначала у меня есть миграция users, потом categories и потом posts

Однако я получаю следующую ошибку

PDOException::( "PDO:: __ construct (): The server requested authentication method unknown to the client [caching_sha2_password]").

Нужно указывать на то, что с версией 5.7 из MysqL выполнил миграции без какой-либо проблемы

3
задан 26.11.2018, 13:04
2 ответа

Это funcionГі для меня:

Сначала creГ© новый пользователь:

CREATE USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' WITH GRANT OPTION;

CREATE USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;

DespuГ©s configurГ© файл config/database.php ( https://github.com/laravel/framework/pull/23948 ):

'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'base_de_datos'),
            'username' => env('DB_USERNAME', 'user'),
            'password' => env('DB_PASSWORD', 'password'),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
            'modes'  => [
                'ONLY_FULL_GROUP_BY',
                'STRICT_TRANS_TABLES',
                'NO_ZERO_IN_DATE',
                'NO_ZERO_DATE',
                'ERROR_FOR_DIVISION_BY_ZERO',
                'NO_ENGINE_SUBSTITUTION',
            ],

        ],

И из-за Гєltimo configurГ© .env :

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=base_de_datos
DB_USERNAME=user
DB_PASSWORD=password

Занес в список!!!

2
ответ дан 03.12.2019, 04:25

Для MySql 8 я это решил меняясь mГ©todo autentificaciГіn в ней configuraciГіn в момент реализации процесса instalaciГіn. Оставаясь следующего способа:

configuracion de mysql8

0
ответ дан 03.12.2019, 04:25

Теги

Похожие вопросы