-Seite%20nicht%3F.png)
Ich erhalte Fehler, wenn ich versuche, eine lokale Verbindung zu mySQL unter Mac OS Snow Leopard 10.6.4 herzustellen. Ich verwende mySQL 5.1.46. Ich kann mich über die Konsole anmelden. Ich verwende PHP 5.3.2 und meine phpinfo()
Seite funktioniert einwandfrei. Ich habe also PHP am Laufen und kann mich sowohl über die Konsole als auch über Sequel Pro beim mySQL-Server anmelden.
Ich vermutete also, dass es ein Socket-Problem war. In meinem /etc-Verzeichnis habe ich nicht php.ini, sondern php.ini.default. Also gehe ich dort hinein und ändere es überall, wo ich „default_socket“ sehe, von:
/var/mysql/mysql.sock
Zu:
/tmp/mysql.sock
Ich sehe es an den folgenden Stellen:
pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
Und wenn ich versuche, eine Verbindung zu phpMyAdmin herzustellen, erhalte ich die folgende Fehlermeldung: „Sitzung kann nicht ohne Fehler gestartet werden. Bitte überprüfen Sie die in Ihrer PHP- und/oder Webserver-Protokolldatei angegebenen Fehler und konfigurieren Sie Ihre PHP-Installation richtig.“
Und wenn ich in meine phpinfo()
Datei schaue, erhalte ich unter mySQL Folgendes:
mysql.default_socket /var/mysql/mysql.sock /var/mysql/mysql.sock
Ich starte Apache neu ... verdammt, ich starte den ganzen Computer neu. Immer noch nichts. Ich weiß, dass MySQL funktioniert, ich weiß, dass PHP funktioniert, aber ich kann sie nicht zum Sprechen bringen.
Irgendeine Hilfe?
Antwort1
PHP sollte nach einer php.ini-Datei (und nicht nach php.ini.default) zum Laden suchen. Versuchen Sie also, php.ini.default in php.ini umzubenennen. SieheInstallieren Sie Apache/PHP/MySQL auf Snow Leopard.
Antwort2
Wenn Sie sich nicht mit den Konfigurationseinstellungen für MySQL oder PHP herumschlagen möchten, richten Sie diesen Hack ein:
mkdir /var/mysql
ln -s /tmp/mysql.sock /var/mysql/mysql.sock
Dadurch wird an der von PHP gesuchten Stelle ein Alias erstellt, der eine Verbindung zum echten mysql.sock herstellt.
Antwort3
Bringen Sie mysql.sock zu PHP
Ein Problem, das bei MySQL und Leopard aufgetreten ist, ist der Speicherort der Datei mysql.sock. Zuvor war der Standardspeicherort für diese Datei das Verzeichnis /tmp. Dieser Speicherort wurde jetzt in das Verzeichnis /var/mysql verschoben. PHP wird dort danach suchen. Leider wird der Standardspeicherort von MySQL sie immer noch am alten Speicherort platzieren. Wir können dies beheben, indem wir eine my.cnf-Konfigurationsdatei im Verzeichnis /etc erstellen. Speichern Sie eine Datei mit folgendem Inhalt in /etc/my.cnf:
[Client] Socket = /var/mysql/mysql.sock
[mysqld] socket = /var/mysql/mysql.sock
Geben Sie im Terminalfenster die folgenden Befehle ein, um das Verzeichnis für die Sock-Datei zu erstellen:
sudo mkdir /var/mysql sudo chown _mysql /var/mysql
Quelle:http://www.procata.com/blog/archives/2007/10/28/working-with-php-5-in-mac-os-x-105/
Antwort4
Ich habe Folgendes getan, um das Problem zu beheben (Mac OS x) -
1.) Gehen Sie zunächst zu Ihrem Apache-Webroot (Pfad verfügbar unter /etc/apache2/httpd.conf -> DocumentRoot). Bei mir war es /Library/WebServer/Documents/
1.1) Erstellen Sie eine showphpconfig.php an diesem Ort
2.) Rufen Sie diese Datei in Ihrem Browser auf:http://127.0.0.1/showphpconfig.php
Hier erfahren Sie, welche Konfigurationsdatei Ihr Apache-Server verwendet
Für mich war es die Verwendung/private/etc/php.ini
Ich sah auch, dass PHP die MySQL-Sock-Datei von/var/mysql/mysql.sock
3.) Ich habe eine Kopie der Datei php.ini erstellt. Öffnen Sie sie und suchen Sie alle Zeilen, die mysql.sock enthalten.
Kopieren Sie diese Zeilen und erstellen Sie einen neuen Eintrag, wie unten -
;pdo_mysql.default_socket=/var/mysql/mysql.sock
pdo_mysql.default_socket=/tmp/mysql.sock
IMPdas ";" vor der ersten Zeile, das heißt, die erste Zeile wird auskommentiert
Es sollten ungefähr 4 solcher Zeilen vorhanden sein
Jetzt haben Sie PHP mitgeteilt, dass die MySQL-Socket-Datei tatsächlich im Ordner /tmp vorhanden ist
4.) starten Sie Ihren Apache-Server neu -apachectl restart
Und Sie sollten den WordPress-Konfigurationsbildschirm sehen