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でログインして行います。

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)

となりました。

原因

原因は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で作っていたためこの設定にしてアップロードをしたらうまくいきました。