FuelPHP Parse Error - SQLSTATE[HY000] [1045] Access denied for user '**********'@'localhost' (using password: YES)

FuelPHPでコマンドからDBに接続しようとしたら**Parse Error - SQLSTATE[HY000] [1045] Access denied for user '**********'@'localhost' (using password: YES)**とエラーがでてしまいました。このエラーの対処方を残しておきます。

コマンド

SSHでログインして行います。 [c] cd /var/www/html/プロジェクト名/ oil console Fuel 1.8 - PHP 7.0.7 (cli) (May 25 2016 18:27:57) [Linux]

Auth::create_user('fuelphp', 'fuelphp', 'fuelphp@example.com'); Parse Error - SQLSTATE[HY000] [1045] Access denied for user '**********'@'localhost' (using password: YES) [/c] となりました。

原因

原因はFuelPHPからDBに接続するときにrootのパスワードをrootで上書きしてるというのがあるみたいです。本番環境の場合は以下の方法で対処できるみたいです。

本番環境での対処方

fuel/app/configの下にある下記ディレクトリを削除します。

  • development
  • production
  • staging
  • test

これで動くみたいです。もしくはapp/config/production/db.phpの内容を本番用のユーザーに書き換えてあげればいいかも知れません。

開発環境での対処方

僕は開発環境で起きたため以下のようにして対応しました。 app/config/development/db.phpを編集

<?php /** * The development database settings. These get merged with the global settings. */ return array( 'default' => array(
'connection' => array(
'dsn' => 'mysql:host=localhost;dbname=fuelphp',
'username' => 'fuelphp',
'password' => 'fuelphp',
),
),
);

DB名、ユーザー名、パスワードを全てfuelphpで作っていたためこの設定にしてアップロードをしたらうまくいきました。