CakePHP Database connection "Mysql" is missing, or could not be created

Try adding the socket:

'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',

An alternative to unix_socket (especially for OS X people) is to replace localhost with 127.0.0.1

Would be as Follows :

public $default = array(
                'datasource' => 'Database/Mysql',
                'persistent' => false,
                'host' => '127.0.0.1',
                'login' => 'user',
                'password' => 'password',
                'database' => 'database-name',
                'prefix' => '',
                'encoding' => 'utf8',
        );

Edit php.ini and add:

extension=php_pdo_mysql.dll 

Then restart your web server


On Mac, using MAMP as a development platform, for cake the correct solution is using Domingo Casarrubio solution.

Add the unix_socket parameter to your database configurations.

'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock',

This error can also be caused if your connecting database user doesn't have the proper privileges. I believe you only need a minimum of INSERT, SELECT, UPDATE, and DELETE.

Always check username/password and the user privileges first since CakePHP will most likely give a vague database connection error for either.