Cakephp2のBakeで、またハマる!?

前回、うまく出来たCake Bakeですが、また、ハマリました。

Bakeを実行すると、

$ ./Console/cake bake all Cat

Welcome to CakePHP v2.3.1 Console
---------------------------------------------------------------
App : app
Path: /Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/app/
---------------------------------------------------------------
Bake All
---------------------------------------------------------------
Warning Error: PDO::__construct(): [2002] Connection refused (trying to connect via unix:///var/mysql/mysql.sock) in [/Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/lib/Cake/Model/Datasource/Database/Mysql.php, line 158]

Error: Database connection "Mysql" is missing, or could not be created.
#0 /Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/lib/Cake/Model/Datasource/DboSource.php(262): Mysql->connect()
#1 /Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/lib/Cake/Model/ConnectionManager.php(102): DboSource->__construct(Array)
#2 /Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/lib/Cake/Model/Model.php(3209): ConnectionManager::getDataSource('default')
#3 /Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/lib/Cake/Model/Model.php(1108): Model->setDataSource('default')
#4 /Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/lib/Cake/Model/Model.php(3231): Model->setSource('cats')
#5 /Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/lib/Cake/Model/Model.php(1319): Model->getDataSource()
#6 /Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/lib/Cake/Console/Command/Task/ModelTask.php(503): Model->schema(true)
#7 /Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/lib/Cake/Console/Command/Task/ModelTask.php(777): ModelTask->doAssociations(Object(Model))
#8 /Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/lib/Cake/Console/Command/BakeShell.php(174): ModelTask->bake(Object(Model), false)
#9 /Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/lib/Cake/Console/Shell.php(389): BakeShell->all()
#10 /Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/lib/Cake/Console/ShellDispatcher.php(200): Shell->runCommand('all', Array)
#11 /Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/lib/Cake/Console/ShellDispatcher.php(68): ShellDispatcher->dispatch()
#12 /Applications/XAMPP/xamppfiles/htdocs/xxxxx/cake/app/Console/cake.php(37): ShellDispatcher::run(Array)
#13 {main}

こんなエラーが表示されます。
前回と違うのは、ここのメッセージ。

Warning Error: PDO::__construct(): [2002] Connection refused (trying to connect via unix:///var/mysql/mysql.sock)

前回、シンボリックリンクを張っているので、動くはずなのですが、なぜエラーなのか原因が分かりません。

とりあえず、解決方法は、

// database.php
public $default = array(
	'datasource' => 'Database/Mysql',
	'persistent' => false,
	'host' => 'localhost',
	'login' => 'xxxxx',
	'password' => 'xxxxx',
	'database' => 'xxxxx',
	'prefix' => 'xx_',
	'encoding' => 'utf8',
	'unix_socket' => '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock'
);

このように、「unix_socket」にmysql.sockまでのパスを入れることでBakeできるようになるみたいです。

Via:MAMP環境のCakePHPでのmysql.sockの指定方法

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)