Die Verbindung durch MySQL-socket mit dem Zend Framework
Ich habe vor kurzem angefangen mit dem Zend Framework. Ich habe begonnen, auf meinem lokalen XAMPP-server das ging gut, aber wenn ich hochgeladen auf meinem 1und1-Konto, bekomme ich immer die folgende Fehlermeldung:
Message: SQLSTATE[HY000] [2002] Kann nicht
eine Verbindung zum lokalen MySQL-server über
socket '/var/run/mysqld/mysqld.Socke'
(2)
Ich habe versucht, die änderung der Ressourcen.db.params.unix_socket Zeile in meiner Anwendung.ini-Datei, die verschiedene, erwähnt in der phpinfo, aber ohne Erfolg. Ich fand hier, dass jemand antwortete
Ist der MySQL server auf dem gleichen host
als web-Anwendung? Wenn nicht, Sie
können nicht, verwenden Sie eine socket-Verbindung, und
müssen eine Verbindung über TCP.
Ich denke, dass ist der Fall mit meinem web-host. Wie kann ich das ändern ZF-Verbindung über TCP statt? Ich bin derzeit mit PDO_MYSQL.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie Sie die MySQL-Verbindung hängt von den Parametern übergeben werden mysql_connect(). Wenn Sie übergeben es einem Datei-Pfad, dh.
/var/run/mysqld/mysqld.sock
, es wird versucht, eine socket-Verbindung. Wenn Sie übergeben Sie einen Hostnamen, wird versucht, eine TCP-Verbindung.Müssen Sie den Hostnamen (oder die IP) des mysql-Servers, und schließen Sie es wie folgt:
mysql_connect('127.0.0.1:3306',$username,$password);
Chancen für ZF, können Sie nur geben Sie diese in der Konfigurationsdatei speichern Sie Ihre Datenbank-Einstellungen, oder wenn Sie eine Verbindung zur Datenbank mit der
host
Einstellung:Bearbeiten: Wenn Sie sind übergabe eines richtigen hostname/port als host-parameter
mysql_connect()
und immer diese Meldung, dann ist es wahrscheinlich ein server-Konfigurations-Problem.Versuchen Sie, den
mysql.default_socket
Einstellung, entweder in php.ini oder an der Spitze Ihrer Anwendung code mit ini_set()Werden Sie haben, um herauszufinden, wo die socket-Datei ist. Oft ist es " /var/lib/mysql/mysql.Socke', aber ich denke, es ist system abhängig.
unix_socket
- option zur gleichen Zeit, die Sie versuchen, mit einem regulären TCP-Verbindung? Dieunix_socket
Teil einer PDO data source name (DSN) sollte nicht verwendet werden, wenn Sie geben Sie einen host-parameter: php.net/manual/en/ref.pdo-mysql.connection.phpHatte ich die Zeile:
in meinem index.php wie aber verändert hatte public/.htaccess zu
Sieht es aus wie die .htaccess wurde nicht gelesen. Ich habe die else-Anweisung in index.php zu "Produktion" aus, um die Produktions-Datenbank-Einstellungen und es funktionierte. Ziemlich frustrierend sein. Ich Frage mich, warum die Umgebungsvariable wurde nicht gelesen. Vielen Dank für Ihre Hilfe.
Zend Framework-option in der db params
unix_socket
, nutzen Sie einfach