web-dev-qa-db-ja.com

エラーを解決する方法:LaravelでSQL認証方法が不明-MySql

私はdockerを使用しており、dockercomposeの構成にLaravel Framework 5.5.25 and other with mysql Ver 8.0.11 for Linux on x86_64(MySQL Community Server-GPL)。これを持っています:

version: "2"
services:
    mysql:
    image: mysql
        ports:
            - "3307:3306"
        command: --sql_mode=""

したがって、Laravel MySqlに接続しようとすると、次のエラーが発生します。

SQLSTATE [HY000] [2054]サーバーがクライアントに不明な認証方法を要求しました(SQL:select * from

5
andreszam24

MySQL8およびPHP7 +にはレガシースタイルのパスワードを使用する必要があります。

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';
9
Esther

私はlaravel 5.8を使用しており、MAMPサーバーでこのエラーを解決するには、以下のように.envファイルにDB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sockを追加します。


DB_CONNECTION=mysql
DB_Host=127.0.0.1
DB_PORT=8889
DB_DATABASE=dbname
DB_USERNAME=root
DB_PASSWORD=root
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock

いくつかのブログで見つけたように、それは通常、最新のMySQLバージョンのソケットの問題が原因です。

1
shivanikoko

私の場合、新しいアプリケーションキーを生成し、それを.envファイルのAPP_KEY変数に割り当てることで問題が解決しました。

php artisan key:generate --show

上記のコマンドは、.envファイルのAPP_KEY変数に割り当てることができる新しいキーを生成します。そうすることで、私の問題は修正されました。

ローカルマシンに.local.envを使用していて、そこに割り当てました。 .production.envファイルでも同じことを行うことができます。

お役に立てれば。

0
meow2x