Mam konfigurację serwera pocztowego za pomocą dovecot + postfix + mysql i działało poprawnie na serwerze (Ubuntu Server). Ale w ostatnim tygodniu przestało działać poprawnie. Nie wysyła wiadomości e-mail. Gdy próbuję telnet localhost smtp
nawiązać połączenie, ale po nawiązaniu połączenia mail from:<[email protected]>
i naciśnięciu klawisza Enter zawiesza się, nic się nie dzieje.
Po przejrzeniu /var/log/mail.log
pliku dowiedziałem się, że prawdopodobnie (99%) problem dotyczy postfiksu, gdy próbuje on połączyć się z serwerem MySQL. Jeśli zobaczysz plik dziennika podany poniżej, zobaczysz, że zawiera on informację Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
.
Nov 14 21:54:36 ns1 dovecot: dovecot: Killed with signal 15 (by pid=7731 uid=0 code=kill)
Nov 14 21:54:36 ns1 dovecot: Dovecot v1.2.9 starting up (core dumps disabled)
Nov 14 21:54:36 ns1 dovecot: auth-worker(default): mysql: Connected to localhost (mailserver)
Nov 14 21:54:44 ns1 postfix/postfix-script[7753]: refreshing the Postfix mail system
Nov 14 21:54:44 ns1 postfix/master[1670]: reload -- version 2.7.0, configuration /etc/postfix
Nov 14 21:54:52 ns1 postfix/trivial-rewrite[7759]: warning: connect to mysql server localhost: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Nov 14 21:54:52 ns1 postfix/trivial-rewrite[7759]: fatal: mysql:/etc/postfix/mysql-virtual-alias-maps.cf(0,lock|fold_fix): table lookup problem
Nov 14 21:54:53 ns1 postfix/master[1670]: warning: process /usr/lib/postfix/trivial-rewrite pid 7759 exit status 1
Nov 14 21:54:53 ns1 postfix/cleanup[7397]: warning: problem talking to service rewrite: Connection reset by peer
Nov 14 21:54:53 ns1 postfix/master[1670]: warning: /usr/lib/postfix/trivial-rewrite: bad command startup -- throttling
Nov 14 21:54:53 ns1 postfix/smtpd[7071]: warning: problem talking to service rewrite: Success
Próbowałem netstat -ln | grep mysql
i powraca
unix 2 [ ACC ] STREAM LISTENING 5817 /var/run/mysqld/mysqld.sock
.
Treść /etc/postfix/mysql-virtual-alias-maps.cf
pliku znajduje się tutaj:
user = stevejobs
password = apple
hosts = localhost
dbname = mailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'
Tutaj próbowałem zmienić, hosts = 127.0.0.1
ale mówiwarning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (110)
Jestem zagubiony i nie wiem, gdzie jeszcze się zmienić, aby rozwiązać problem. Każda pomoc będzie mile widziana.
Dziękuję Ci.
EDYCJA 1
Kiedy wykonuję netstat -na, widzę, że mysql nie jest powiązany ani z hostem lokalnym, ani z 127.0.0.1. Czy to może być problem?
bakhtiyor@ns1:~$ netstat -na | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
Miałem podobny problem. Zmiana „hosts = localhost” na „hosts = 127.0.0.1” i ustawienie adresu powiązania na ten sam adres naprawiło go (z jakiegoś powodu ustawiono adres powiązania na 0.0.0.0)
źródło
Czy próbowałeś połączyć się z serwerem Mysql?
Możesz także spróbować zmienić adres nasłuchu w /etc/mysql/my.cnf na 127.0.0.1 i zrestartować MySQL
źródło
Właśnie otrzymywałem ten sam błąd na jednym z komputerów firmy.
Ten błąd często pojawiał się, gdy próbowałem uruchomić programy X-Windows za pośrednictwem ssh:
Okazuje się, że miałem główny system plików, który był całkowicie zapełniony, bez wolnego miejsca na dysku, więc mój system nie mógł zapisać wielu niezbędnych plików. Otrzymywałem różnego rodzaju błędy związane z wieloma różnymi programami. (Nie można się zalogować przez GDM, tapeta GDM stała się czarna, błędy pliku blokady gconf itp.)
Wystarczyło wprowadzić to proste polecenie, aby pozbyć się niepotrzebnych plików na partycji głównej o wartości ponad 400 MB.
Dzięki temu mój główny system plików potrzebował miejsca do oddychania. Teraz wszystko działa świetnie. Zgadnij, że katalog główny o pojemności 10 GB nie wystarczy, aby obsłużyć aktualizacje Ubuntu w ciągu dwóch lat.
Jeśli ktoś się tym przejmuje, w systemie uruchomiono system Ubuntu 10.04, odkąd się pojawił. System aktualizuje się przynajmniej raz w tygodniu. Dzisiejsza data to 9-6-2012, więc to prawie 2 i pół roku aktualizacji.
źródło
W końcu pomogło mi wyczyszczenie (nie usunięcie!) Wszystkich pakietów apt-get związanych z mysql, z wyjątkiem
libmysqlclient16
których był w stanie deinstalacji (nie jestem pewien, co to jest).Więc po prostu wykonaj:
i wtedy:
Zacznij od wspólnego, a następnie przejdź do klienta, a następnie serwera.
źródło
libmysqlclientXX