前回、うまく出来た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できるようになるみたいです。
日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)