Meine / etc / hosts-Datei sieht folgendermaßen aus:
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Beim Erstellen des Servers stellte ich fest, dass ich in bestimmten Konfigurationsdateien für Dienste wie Postfix, Apache und Dovecot, obwohl ich localhost erfolgreich pingen konnte, angeben musste, 127.0.0.1
anstatt localhost
, damit sie funktionieren.
Ich musste auch die Konfigurationsdateien bestimmter datenbankgesteuerter Websites ändern, die für localhost
die Verbindung mit MySQL verwendet wurden.
Ich habe verschiedene Änderungen an der hosts
Datei versucht , aber nichts, was ich bisher versucht habe, hat geholfen.
Auf dem Server wird Ubuntu 12.04.02 LTS ausgeführt. Selinux ist nicht installiert, und die oben genannte Situation bleibt auch nach dem Festlegen der Standardrichtlinien für IPtables bestehen, um diese zu akzeptieren und zu löschen.
127.0.0.1
(außer einem, der ist%
) sind. Ich denke, dies zeigt wahrscheinlich genug, damit ich es beheben kann, also werde ich Ihre Antwort wahrscheinlich in Kürze akzeptieren.localhost
alssocket
stattTCP
).Die meisten MySQL-Clients sind insofern seltsam, als sie, wenn Sie den Host als angeben
localhost
, diesen Alias für eine Socket-Verbindung anstelle einer TCP-Verbindung verwenden. Sie können entweder bleiben127.0.0.1
oder, wenn der Client dies unterstützt (wie es die MySQL-CLI-Binärdatei mit dem--protocol
Flag tut ), die Verwendung von TCP anstelle eines Unix-Sockets erzwingen.quelle
127.0.0.1
anstelle deslocalhost
Felds Hostname angeben , werden die Installationspfade durcheinander gebracht, was zu anderen Fehlern führt. Wenn Sie jedoch localhost angeben , kann die Datenbank nicht verbunden werden! Was hat diese Situation verursacht? Warum habe ich es?socket = /var/run/mysqld/mysqld.sock
inmy.cnf
und die Datei ist vorhanden, im Besitz von MySQL mit Berechtigungen 777. Danke.127.0.0.1
, funktioniert es (aber das Skript verwendet den Eintrag später und schlägt fehl, weil es einen auflösbaren Namen wie erwartetlocalhost
), aber wenn ich daslocalhost
Verbinden verwende, um die Datenbank zu erstellen, schlägt dies fehl.Wenn die Zuschüsse korrekt sind, sollten Sie beachten, dass bei Verwendung von MariaDB ein Fehler aufgetreten ist, der genau dieses Verhalten in Version 10.0.1 und 5.5.30 https://mariadb.atlassian.net/browse/MDEV-4356 verursacht hat
quelle
Sie können die Berechtigung wie folgt überprüfen:
Wenn dies 0 0.0.0.0:* abhört, bedeutet dies, dass jeder auf diese MySQL zugreifen kann.
Sie können die Bindung hierfür in der Datei my.conf bearbeiten. In Linux ist der Standardpfad dafür:
Fügen Sie diese Zeilen in die Datei my.conf ein, um die gewünschte IP-Adresse zuzulassen.
quelle
PHP versucht immer noch, den Standard-Socket-Speicherort zu verwenden. Dieses Problem kann auftreten, wenn Sie den Ordner MariaDB / MySQL von / var / lib / mysql an einen anderen Speicherort verschoben haben . Um das Problem zu lösen, müssen Sie den Speicherort des neuen Sockets in der Datei /etc/php.ini definieren .
quelle
Ich habe dieses Problem durch Erstellen eines Symlinks gelöst
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
. Aber zuerst muss ich einen Ordner erstellen,/var/run/mysqld/
da der Ordner anfangs nicht existierte.quelle
Sie benötigen eine mysql.sock in / tmp
ln -s /var/lib/mysql/mysql.sock mysql.sock
sollte danach gut funktionieren.
quelle