Mój plik / etc / hosts wygląda następująco:
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
Podczas budowania serwera odkryłem, że chociaż mogę pomyślnie pingować localhost, w niektórych plikach konfiguracyjnych dla usług takich jak Postfix, Apache i Dovecot, musiałem podać 127.0.0.1
zamiast localhost
, aby działały.
Musiałem także zmienić pliki konfiguracyjne niektórych stron internetowych opartych na bazie danych, które localhost
łączyły się z MySQL.
Próbowałem różnych modyfikacji hosts
pliku, ale nic, co do tej pory próbowałem, nie pomogło.
Na serwerze działa Ubuntu 12.04.02 LTS. Nie ma zainstalowanego selinux i powyższa sytuacja pozostaje nawet po ustawieniu domyślnych zasad IPtables na ich akceptację i opróżnianie.
127.0.0.1
(z wyjątkiem jednego, który jest%
). Myślę, że to prawdopodobnie ujawnia wystarczająco dużo, aby to naprawić, więc prawdopodobnie zaakceptuję twoją odpowiedź w krótkim czasie.localhost
jakosocket
zamiastTCP
).Większość klientów MySQL ma dziwny fakt, że jeśli określisz host jako
localhost
, alias tego połączenia do gniazda zamiast połączenia TCP. Masz do wyboru albo trzymać się,127.0.0.1
albo, jeśli klient to obsługuje (podobnie jak plik binarny CLI mysql z--protocol
flagą), zmuś go do używania TCP zamiast gniazda unix.źródło
127.0.0.1
zamiastlocalhost
nazwy hosta, spowoduje to pomyłkę ścieżek instalacji, co da mi inne błędy, ale określenie hosta lokalnego nie spowoduje połączenia z bazą danych! Co spowodowało tę sytuację? Dlaczego to mam?socket = /var/run/mysqld/mysqld.sock
sięmy.cnf
i plik jest istniejący, należąca do MySQL z uprawnieniami 777. Dzięki.127.0.0.1
to działa (ale skrypt używa tego wpisu później i kończy się niepowodzeniem, ponieważ oczekuje nazwy możliwej do rozwiązania jaklocalhost
), ale jeśli użyję, łączę sięlocalhost
, aby utworzyć bazę danych, nie powiedzie się.Należy zauważyć, że jeśli granty są prawidłowe, jeśli korzystasz z MariaDB, wystąpił błąd, który spowodował to dokładne zachowanie w wersji 10.0.1 i 5.5.30 https://mariadb.atlassian.net/browse/MDEV-4356
źródło
Możesz sprawdzić uprawnienia w ten sposób:
Jeśli nasłuchuje na 0 0.0.0.0:*, oznacza to, że każdy może uzyskać dostęp do tego mysql.
możesz edytować powiązanie dla tego w pliku my.conf. W Linuksie domyślna ścieżka to:
Dodaj te wiersze do pliku my.conf, aby zezwolić na ip, który chcesz.
źródło
PHP wciąż próbuje użyć domyślnej lokalizacji gniazda. Ten problem może pojawić się, jeśli folder MariaDB / MySQL został przeniesiony z / var / lib / mysql do innej lokalizacji. Aby rozwiązać problem, musisz zdefiniować lokalizację nowego gniazda w pliku /etc/php.ini .
źródło
I rozwiązać ten problem poprzez utworzenie dowiązania,
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
. Ale najpierw muszę utworzyć folder,/var/run/mysqld/
ponieważ folder początkowo nie istniał.źródło
Potrzebujesz mysql.sock w / tmp
ln -s /var/lib/mysql/mysql.sock mysql.sock
po tym powinno działać dobrze.
źródło