Drupal8.6.3のインストール データベース構成画面でエラーが出る場合の対処法がわかった!
Drupal8.6.3のインストールエラー データベース作成時の解決策
「以下の全ての問題を解決してからインストール作業を続けてください。データベースサーバーの設定に関しては、インストールハンドブック(英語)を参照するか、ホスティングプロバイダーに連絡してください。
- データベースサーバーへの接続に失敗しました。サーバーからの返信: SQLSTATE[HY000][2054]The server requested authentication method unknown to the client
- データベースサーバーが稼働していますか?
- データベースが存在しているか、あるいはデータベースユーザーにデータベースを作成する適切な権限はありますか?
- データベース名を正しく入力していますか?
- ユーザー名とパスワードを正しく入力していますか?
- データベース名のホストを正しく入力していますか?
これらの問いに、思い当たる節がなく、ユーザーパスワードもmysql_native_passwordに変更してエラーを潰していました。MySQL8.0ではデフォルトでcaching_sha2_password方式で設定されています。
原因
ユーザー名もパスワードも、データベース名も正しく入力しており権限もクリアしています。その状態でSQLSTATE[HY000][2054]The server requested authentication method unknown to the clientというエラーが出た原因はソケットの設定がなされていないことにありました。
解決方法
まずはMySQLでソケットの場所を調べます。バージョンによりソケットファイルの名前や場所は異なります。MySQLバージョン8.0でのソケットの場所は /tmp/mysqlx.sockとなっています。詳しくは次のページをご覧ください。
ソケットの場所を取得してから次のステップに移ります。PHPの設定ファイル「php.ini」を開きます。そして次の項目を検索してください。
- extension=sockets
- pdo_mysql.default_socket=
- mysqli.default_socket =
- mysql.default_socket = (MySql 8.0にはデフォルトで含まれない)
最初の拡張機能extension=socketsはコメントアウトを外して有効にしておきます。そして後の二か所~三か所に/tmp/mysqlx.sockもしくは/tmp/mysql.sock(旧バージョン)を記入してコメントアウトを外して有効にします。上書き保存をしてApache(サーバー)を再起動します。
これでDrupalにデータベースを登録できるようになっているはずです。
お役に立てれば幸いです。うまくいかなかった人は別の原因があると思いますので頑張ってください。私はこの問題の解決に12時間試行錯誤しました・・・。
コメント
コメントを投稿