2010-10-01 8 views
9

Ich arbeite an der symfony tutorial jobeet und ich habe Probleme, eine Datenbankverbindung zur MySQL-Datenbank über Doktrin zu bekommen. Entwicklungsumgebung: Mac OS X und XAMPP.Keine Datenbankverbindung über Doktrin in Symfony

Der Befehl php symfony doctrine:build-schema gibt mir die folgende Fehlermeldung:

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

Die Datenbankeinstellungen in der database.yml:

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

MySQl läuft. Benutzername und Passwort sind korrekt. Die Datenbank 'my_project_db' existiert.

Kann mir jemand einen Hinweis geben, was schief läuft?

+0

Gibt es die Datei /var/mysql/mysql.sock? Versuchen Sie, diese Datei mit locate zu finden, wenn nicht. – greg0ire

+0

ja. Es ist eine leere Datei in/Programme/XAMPP/Xamppfiles/var/mysql/ – skanne

Antwort

14

Versuchen Sie einen Symlink in /var/mysql zu Ihrem mysql.sock zu erstellen:

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

thx. Das funktioniert. – skanne

+0

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

+0

@anggriawan: Danke für den Hinweis –

3

Ich hatte das gleiche Problem auf meinem Apple Mac und tat das folgende:

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

Arbeitete für mich.

12

Oder mit MAMP

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

Unter Mac OSX Lion:

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

Diese Situation mir passiert auch, und ich benutze MAMP Pro. Wenn Sie MAMP Pro verwenden, lohnt es sich, das Hauptfenster zu überprüfen. Sehen Sie sich die Registerkarte "MySQL" an und aktivieren Sie das Kontrollkästchen "Nur lokalen Zugriff zulassen". Wenn es aktiviert ist, sollten Sie es deaktivieren. Klicken Sie abschließend auf "Übernehmen".

Verwandte Themen