質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

809閲覧

laravelでmysqlに接続する時にエラーになる

uer03108

総合スコア194

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/08/23 03:15

編集2019/08/23 03:50

laravelでMySQLに接続する時にエラーが出ました。

txt

1Illuminate \ Database \ QueryException (2054) 2SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client (SQL: SELECT column_1, column_2 FROM sampletable)

イメージ説明

ネットで調べたところ認証方式を切り替えればOKということだったのですが、認証方式を切り替えてもエラーが出ました。

イメージ説明

laravelのdatabase.phpのmysqlの部分

php

1 2 'mysql' => [ 3 'driver' => 'mysql', 4 'url' => env('localhost'), //Mysql@localhost:3306 5 'host' => env('DB_HOST' , 'localhost'), 6 'port' => env('DB_PORT' , '3306' ), 7 'database' => env('DB_DATABASE', 'sample' ), 8 'username' => env('DB_USERNAME', 'root' ), 9 'password' => env('DB_PASSWORD', 'pass' ), 10 'unix_socket' => env('DB_SOCKET' , '' ), 11 'charset' => 'utf8mb4', 12 'collation' => 'utf8mb4_unicode_ci', 13 'prefix' => '', 14 'prefix_indexes' => true, 15 'strict' => true, 16 'engine' => null, 17 'options' => extension_loaded('pdo_mysql') ? array_filter([ 18 PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), 19 ]) : [], 20 ], 21

一応、ユーザrootの認証方式は切り替えてあります。

他の原因が分からないのですが、どなたかお分かりの方、いらっしゃるでしょうか。


追記

ヴァージョン情報

Laravel Framework 5.8.33
MySQL : 8.0
PHP : 7

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/08/23 03:40

MySQLは8なのでしょうか。 Laravel、PHPのバージョンも含めて環境情報として質問本文に追記してください。
uer03108

2019/08/23 03:50

追記いたしました。
m.ts10806

2019/08/23 03:55

default-authentication-plugin = mysql_native_password 上記は設定ファイル(my.cnf)に書くものと思いますが、どういう意図でコマンドラインに書いたのでしょうか
uer03108

2019/08/23 04:01 編集

それは関係ありませんので、気にされなくて大丈夫です。
guest

回答2

0

自己解決

.envファイルを更新しておりませんでした。
MySQL側の問題ではありませんでした。
失礼いたしました。

投稿2019/08/23 04:37

uer03108

総合スコア194

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/08/23 04:38

どこをどのように更新したのか記載すると後から見る人のためになると思います。
guest

0

default-authentication-plugin = mysql_native_password

上記は設定ファイル(my.cnf)に書くものと思いますが、どういう意図でコマンドラインに書いたのでしょうか

コマンドラインで編集したということになります。

見て分かるようにSyntaxエラー起きてます。
SQLのコマンドではなく設定なので設定ファイル(my.cnf)に直接書いてMySQLを再起動してください。
SQLのコマンドであればALTERですね。

投稿2019/08/23 04:04

m.ts10806

総合スコア80842

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

uer03108

2019/08/23 04:11

回答ありがとうございます。 その部分ですが、すでにユーザrootの認証方式は切り替えてあります。 なので、そこは気にされなくて大丈夫です。
m.ts10806

2019/08/23 04:12

んーでは何のために打ったのか意図が分かりません。(要は回答の際のノイズになってしまってないか懸念しています)
uer03108

2019/08/23 04:25

デフォルトのユーザ認証を更新しようとして失敗したものです。 ノイズになったらスミマセン。
m.ts10806

2019/08/23 04:27

関係なさそうなら削ってもらったほうがいいかもしれません。 ただ、「デフォルトの認証方式をかえる」のであれば設定ファイル側の対応は必要そうに思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問