CakePHP: Utilizzare “bake script” con MAMP su Mac OSX

Gli sviluppatori CakePHP che volessero utilizzare il comodo script “bake” su di una LAMP realizzata con MAMP si trovano di fronte ad un errore di connessione con il server db:

---------------------------------------------------------------
Bake Model
Path: /Users/peg/Sites/cake12/app/models/
---------------------------------------------------------------

Warning: mysql_connect(): Can't connect to local MySQL server through socket
'/var/mysql/mysql.sock' (2) in
/Users/peg/Sites/cake12/cake/libs/model/datasources/dbo/dbo_mysql.php on line 370

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in
/Users/peg/Sites/cake12/cake/libs/model/datasources/dbo/dbo_mysql.php on line 375

Warning: mysql_get_server_info(): supplied argument is not a valid MySQL-Link resource in
/Users/peg/Sites/cake12/cake/libs/model/datasources/dbo/dbo_mysql.php on line 383

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in
/Users/peg/Sites/cake12/cake/libs/model/datasources/dbo/dbo_mysql.php on line 407

Error: Your database does not have any tables.

Questo problema è dovuto al fatto che viene utilizzato il socket mysql di default presente nel sistema OSX (evidenziato in grassetto nel codice precedente).

La soluzione a questo problema è modificare la configurazione della connessione database di CakePHP aggiungendo la seguente definizione per la porta:

'port' => '/Applications/MAMP/tmp/mysql/mysql.sock'

Così facendo si forza l’utilizzo del server MySQL installato da MAMP e gestibile mediante i classici strumenti del pacchetto.

Diventa dunque possibile utilizzare lo script bake!

    • pollution
    • marzo 4th, 2009

    io ho risolto facendo un link simbolico

    ln -s /Applications/MAMP/tmp/mysql/mysql.sock /var/mysql/mysql.sock

  1. No trackbacks yet.