2010-10-01 20 views
9

Sto lavorando sul tutorial di symfony e ho problemi a ottenere una connessione al database MySQL tramite doctrine. Ambiente di sviluppo: Mac OS X e XAMPP.Nessuna connessione al database tramite doctrine in symfony

Il comando php symfony doctrine:build-schema mi dà il seguente messaggio di errore:

Warning: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in /Users/xx/projects/myproject/lib/vendor/symfony/lib/plugins/sfDoctrinePlugin/lib/vendor/doctrine/Doctrine/Connection.php on line 470
PDO Connection Error: SQLSTATE[HY000] [2002] No such file or directory

le impostazioni del database nel database.yml:

all: 
    doctrine: 
    class: sfDoctrineDatabase 
    param: 
     dsn: 'mysql:host=localhost;dbname=my_project_db' 
     username: root 
     password: root 

MySQL sia in funzione. Nome utente e password sono corretti. Il database 'my_project_db' esiste.

Qualcuno potrebbe darmi un suggerimento cosa sta andando storto?

+0

Il file /var/mysql/mysql.sock esiste? Prova a trovare quel file usando locate se non. – greg0ire

+0

sì. è un file vuoto in/Applicazioni/XAMPP/xamppfiles/var/mysql/ – skanne

risposta

14

Prova a creare un link simbolico in /var/mysql al tuo mysql.sock:

sudo ln -s /Applications/XAMPP/xamppfiles/var/mysql /var/mysql 
+0

thx. Che funzioni. – skanne

+0

sudo ln -s/Applicazioni/XAMPP/xamppfiles/var/mysql/var/mysql – anggriawan

+0

@anggriawan: grazie per il suggerimento –

3

Ho avuto lo stesso problema sul mio Mac di Apple e ha fatto la seguente:

cd /var; sudo ln -s /Applications/XAMPP/xamppfiles/var/mysql/ mysql 

lavorato per me.

12

O con MAMP

cd /var; sudo ln -s /Applications/MAMP/tmp/mysql mysql 
3

Su Mac OSX Lion:

cd /var; 
sudo mkdir mysql; cd mysql; 
sudo ln -s /Applications/MAMP/tmp/mysql/mysql.sock mysql.sock 
1

Questa situazione è successo anche a me e io uso MAMP Pro. Se usi MAMP Pro, vale la pena controllare la finestra principale. Guarda la scheda "MySQL", quindi consulta la casella di controllo "Consenti solo accesso locale". Se è selezionato, è necessario deselezionarlo. Infine, fai clic sul pulsante "Applica".

Problemi correlati