Laravel выдает QueryException после обновления MySQL до 8.0 - PullRequest
0 голосов
/ 03 июня 2018

После обновления MySQL до версии 8.0, любая попытка перенести базу данных выдает исключение, указывающее unknown authenticaion method

  [Illuminate\Database\QueryException]                                         
  SQLSTATE[HY000] [2054] The server requested authentication method unknown t  
  o the client (SQL: select * from information_schema.tables where table_sche  
  ma = wiki and table_name = migrations)                                       



  [PDOException]                                                               
  SQLSTATE[HY000] [2054] The server requested authentication method unknown t  
  o the client                                                                 



  [PDOException]                                                               
  PDO::__construct(): The server requested authentication method unknown to t  
  he client [caching_sha2_password]                                            

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

на окнах;завершите sqld из диспетчера задач, теперь из панели управления XAMPP остановите и перезапустите MySQL.

0 голосов
/ 03 июня 2018

Это связано с тем, что MySQL 8.0.4 изменил механизм аутентификации по умолчанию на caching_sha2_password.( второе предложение )

Чтобы аутентифицировать его с вашими .env DB_USERNAME и DB_PASSWORD, выполните следующие инструкции:

  • Добавьте default-authentication-plugin=mysql_native_password к вашему my.cnf

    В CentOS / RHEL он расположен в /etc/my.cnf.
    В Debian / Ubuntu я верю, что он расположен в /etc/mysql.
    Это вернетсяверните механизм аутентификации по умолчанию обратно на пароль пользователя.

Войдите в свой mysql и выполните процедуру

  • Удалите существующего пользователя базы данных и создайте его заново.

    Чтобы удалить пользователя:
    DROP USER yourUser@localhost; (при условии, что ваша база данных является локальной)

  • Создать другого пользователя
    CREATE USER user@localhost IDENTIFIED BY 'yourpassword';
    GRANT ALL PRIVILEGES ON dbName.* TO user@localhost;

  • Права на сброс
    FLUSH PRIVILEGES;

Выход из MySQL и запуск:

В Centos/ RHEL: systemctl restart mysqld
В Debian / Ubuntu: systemctl restart mysql.service

Я могу запустить его без удаления базы данных.

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...