CakePHP: Kann nicht auf MySQL Datenbank
Ich bin neu bei CakePHP und bin nur durch die Konfiguration, aber bin ratlos, warum der Kuchen kann keinen Zugriff auf meine MySQL-Datenbank. Der Kuchen info-Seite sagt, dass mein tmp-Verzeichnis beschreibbar ist, die FileEngine wird für die Zwischenspeicherung verwendet (weiß nicht, was das bedeutet), und meine Datenbank-Konfigurations-Datei vorhanden ist, sondern, dass CakePHP nicht mit der Datenbank verbinden.
Hier meine setup-details:
- PHP 5.3 (pre-installiert auf Snow Leopard)
- MySQL 5.1.40 64-bit -
- CakePHP 1.2.4.8284
Hier sind die Schritte, die ich ging durch:
- Erstellt eine MySQL-schema genannt cake_blog
- Erstellt einen MySQL-Benutzer namens cake_blog_user
- Gewährt cake_blog_user die entsprechenden Berechtigungen auf cake_blog@localhost und cake_blog@%
- Die Datenbank kopiert.php.default-Datei database.php und bearbeitet die Datenbank-Verbindung details wie entsprechende
Hier ist der entsprechende Konfigurations-Daten aus database.php:
var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'cake_blog_user', 'password' => 'cake_blog_password', 'database' => 'cake_blog', 'praefix' => ", );
Bin ich hier etwas fehlt? Ich sollte auch erwähnen, dass, wenn ich stecken Sie ein echo mysql_error();
in die /cake/libs/Ansicht/Seiten/home.ctp-Datei, bevor es richtig testet die Datenbank-Verbindung, der Fehler angezeigt wird "Keine solche Datei oder Verzeichnis." Ich habe keine Ahnung, welche Datei oder Verzeichnis es spricht.
Dank!
- Was macht Ihr Datenbank-setup Aussehen, also welche Parameter würden Sie in der Regel verwenden, um eine Verbindung herzustellen? Post die details der database.php Datei.
- Ich werde gehen auf ein Glied und vermute, dass die mysql.Socke ist nicht in der standard-Lage mehr
- Nicht gerade eine Lösung zu diesem Problem, aber ich habe großen Erfolg tun-Kuchen-Entwicklung auf einem Mac mit MAMP (self-contained LAMPE-wie-stack). Vielleicht werfen Sie einen Blick auf, die.
- Dank nduplessis! In Snow Leopard
mysql.sock
wurde verschoben, um die/tmp/mysql.sock
anstelle der Standard-Speicherort/var/mysql/mysql.sock
. - Oh, stimmt ja. Ich habe einen symlink anstatt die Aktualisierung meiner php.ini
- Ah, ein symlink würde auch funktionieren! 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn es ist die Buchse, ändern Sie einfach die /etc/php.ini entsprechend die folgenden
und
Was in der Regel beißt mich in Sie, dass MySQL denkt, 'localhost' als 'die Verbindung wird über das unix-socket' und '127.0.0.1' 'connect thru TCP-port'. Mit Sachen wie XAMPP (zumindest auf dem mac) die unix-socket-Datei gibt es nicht. Verwenden Sie einfach 127.0.0.1 statt.
Sollte die ganze Zeit arbeiten.
Ich glaube, Sie können auch die folgenden
tut dies könnte bedeuten, müssen Sie zum Bearbeiten der database.php Datei, wenn Sie live gehen auf den Produktions-server.
Danke an alle für den Hinweis mich in die richtige Richtung. Die mysql.sock Datei wurde verschoben, um die
/tmp/mysql.sock
anstelle des Standard-Speicherort auf/var/mysql/mysql.sock
. Bearbeiten von php.ini-Datei, um diese zu reflektieren hat das problem behoben.sudo ln -s /tmp/mysql.sock /var/mysql/mysql.sock
(stellen Sie sicher, dass Siesudo mkdir /var/mysql/
erste!) Auf diese Weise müssen Sie nicht sorgen zu machen über das Bearbeiten der php.ini-Datei.überprüfen Sie Ihre phpinfo und verwenden Sie die Buchse aufgeführt. das funktionierte für mich.
Auf Ubuntu, wenn du beide installiert 7.0 5.6-Versionen von PHP dies nicht funktionieren.
Wirst du wechseln müssen, wenn Sie beide Versionen:
Erstmal schauen ob version 7.0: der Befehl ist
php -v
.Weiter zu tun