CakePHP: Kann nicht auf die MySQL-Datenbank zugreifen

8

Ich bin neu bei CakePHP und laufe gerade durch den Konfigurationsprozess, aber ich bin überrascht, warum Cake nicht auf meine MySQL-Datenbank zugreifen kann. Die Cake-Infoseite sagt, dass mein tmp-Verzeichnis beschreibbar ist, die FileEngine wird zum Caching verwendet (weiß nicht, was das bedeutet), und meine Datenbankkonfigurationsdatei ist vorhanden, aber CakePHP kann keine Verbindung zur Datenbank herstellen.

Hier sind meine Setup-Details:

  • PHP 5.3 (auf Snow Leopard vorinstalliert)
  • MySQL 5.1.40 64-Bit
  • CakePHP 1.2.4.8284

Hier sind die Schritte, die ich durchlaufen habe:

  • Erstellt ein MySQL-Schema namens cake_blog
  • Erstellt einen MySQL-Benutzer namens cake_blog_user
  • Gewährt cake_blog_user die entsprechenden Berechtigungen für cake_blog @ localhost und cake_blog @%
  • Die Datei "database.php.default" in die Datei "database.php" kopiert und die Datenbankverbindungsdetails entsprechend angepasst

Hier sind die relevanten Konfigurationsdaten aus der Datenbank.php:

%Vor%

Fehle ich hier etwas? Ich sollte auch erwähnen, dass, wenn ich ein echo mysql_error(); direkt in die Datei /cake/libs/view/pages/home.ctp einfüge, bevor es die Datenbankverbindung testet, der angezeigte Fehler "Keine solche Datei oder Verzeichnis" ist. Ich habe keine Ahnung, um welche Datei oder welches Verzeichnis es sich handelt.

Danke!

    
Jared 28.10.2009, 06:21
quelle

6 Antworten

8

Wenn es sich um den Socket handelt, editieren Sie einfach /etc/php.ini, um folgendes zu reflektieren:

%Vor%

und

%Vor%     
nduplessis 28.10.2009, 06:33
quelle
9

Was mich normalerweise beißt, ist, dass MySQL von 'localhost' als 'Verbindung durch den Unix-Socket' und '127.0.0.1' durch TCP-Port verbinden 'denkt. Mit Dingen wie XAMPP (zumindest auf Mac) ist die Unix-Socket-Datei nicht da. Verwenden Sie stattdessen 127.0.0.1 .

%Vor%

Sollte die ganze Zeit funktionieren.

    
Eduardo Romero 05.11.2009 22:22
quelle
6

Ich glaube, Sie können auch Folgendes tun

%Vor%

Dies bedeutet möglicherweise, dass Sie die Datei "datenbank.php" bearbeiten müssen, wenn Sie auf den Produktionsserver gehen.

    
Abba Bryant 29.10.2009 16:12
quelle
1

Danke an alle, die mich in die richtige Richtung weisen. Die Datei mysql.sock wurde in /tmp/mysql.sock anstatt in den Standardspeicherort /var/mysql/mysql.sock verschoben. Durch das Bearbeiten der php.ini-Datei wurde das Problem behoben.

    
Jared 28.10.2009 07:03
quelle
0

überprüfe deine phpinfo und benutze den aufgelisteten Socket. das hat für mich funktioniert.

    
lilbro1062000 05.03.2014 01:25
quelle
0

Unter Ubuntu funktioniert das nicht, wenn Sie sowohl die Version 7.0 als auch die Version 5.6 von PHP installiert haben.

Sie müssen wechseln, wenn Sie beide Versionen haben:

Schauen Sie zuerst, wenn es 7.0 Version ist: der Befehl ist php -v .

Als nächstes

%Vor%     
Stefan Bubonja 03.09.2016 22:35
quelle