LoginSignup
19

More than 5 years have passed since last update.

[FuelPHP]oilコマンドでMySQLに接続できない

Posted at

FuelPHPにはoilというジェネレーターパッケージが内包されており、
簡単にDBの作成やコントローラーファイルの生成をすることが可能です。

公式リファレンスはコチラ

こちらの方法でFuelPHPをインストールし、
oilコマンドでマイグレーションを生成しようとすると、以下のようなエラーが出ます。

Uncaught exception Fuel\Core\Database_Exception: SQLSTATE[HY000] [2002] No such file or directory
Callstack:
#0 /Applications/MAMP/htdocs/sample/fuel/core/classes/database/pdo/connection.php(167): Fuel\Core\Database_PDO_Connection->connect()
#1 /Applications/MAMP/htdocs/sample/fuel/core/classes/database/query.php(287): Fuel\Core\Database_PDO_Connection->query(1, 'SELECT * FROM `...', false)
...

ファイルが見つかりませんと出ますが、よくよく下の方まで読んでみると

Previous exception:
Uncaught exception PDOException: SQLSTATE[HY000] [2002] No such file or directory
Callstack:
#0 /Applications/MAMP/htdocs/sample/fuel/core/classes/database/pdo/connection.php(95): PDO->__construct('mysql:host=loca...', 'root', 'root', Array)
#1 /Applications/MAMP/htdocs/sample/fuel/core/classes/database/pdo/connection.php(167): Fuel\Core\Database_PDO_Connection->connect()

と出ています。
すなわち、コンストラクタでDBの設定ファイルを読み込んでいますが、
DBに接続できませんよ〜!と言っています。

そこで、DBの設定ファイルを編集します。

$ vim fuel/app/config/development/db.php
db.php

return array(
        'default' => array(
                'connection'  => array(
                        'dsn'        => 'mysql:host=localhost;dbname=fuel_dev;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock',
//unix_socketを指定
                        'username'   => 'root',
                        'password'   => 'root',
                ),
        ),
);

PDOのDSNでMAMPのmysql.sockを指定します。
これで正常にMySQLに接続する事が出来るようになるかと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19