弊社のメンバーがすげぇ苦労してたのできっと誰かの為になると思い、残しときます。環境は以下。
- CakePHP3で作成しているアプリ
- CircleCIでCIを設定中
- MySQLに接続
マイグレーションの時に下記のようなエラーになります。
./bin/cake migrations migrate
Welcome to CakePHP v3.1.0 Console
---------------------------------------------------------------
App : src
Path: /home/ubuntu/gbs/src/
PHP : 5.6.5
---------------------------------------------------------------
using migration path /home/ubuntu/gbs/config/Migrations
[InvalidArgumentException]
There was a problem connecting to the database: SQLSTATE[HY000] [2002] No s
uch file or directory
./bin/cake migrations migrate returned exit code 1
migrate [-t|--target TARGET] [-d|--date DATE] [-p|--plugin PLUGIN] [-c|--connection CONNECTION] [-s|--source SOURCE] Action failed: ./bin/cake migrations migrate
http://easyramble.com/cakephp-mysql-socket-path.html
こちらでやっていたように、 unix_socket
を指定したら良いのかと思ったのですが、次は適切な指定情報がわからないという状況。
mysql -u ubuntu circle_test -e "show variables like '%sock%'"
こうすると、socketのパス情報が見れます(今回は/var/run/mysqld/mysqld.sock
)。それをコンフィグに追加。
config/app.php
// 'Datasources'の各環境の下に書く(具体的な場所は人によると思う)。
'unix_socket' => '/var/run/mysqld/mysqld.sock'