소켓 '/var/run/mysqld/mysqld.sock'을 통해 로컬 MySQL 서버에 연결할 수 없습니다 (2).


9

dovecot + postfix + mysql을 사용하여 메일 서버를 구성 했으며 서버 (Ubuntu Server)에서 제대로 실행되었습니다. 그러나 지난 주 동안 제대로 작동하지 않았습니다. 이메일을 보내지 않습니다. telnet localhost smtp연결을 시도 했지만 연결 mail from:<steve@example.com>하고 Enter 키를 누르면 아무런 반응이 없습니다.

/var/log/mail.log파일 을 검토 한 결과 MySQL 서버에 연결하려고 할 때 아마도 (99 %) 문제가 postfix에 있음을 알았습니다. 아래에 주어진 로그 파일이 보이면이라고 표시되어 있습니다 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

나는 시도 netstat -ln | grep mysql하고 돌아왔다

unix 2 [ ACC ] STREAM LISTENING 5817 /var/run/mysqld/mysqld.sock.

/etc/postfix/mysql-virtual-alias-maps.cf파일 내용 은 다음과 같습니다.

user = stevejobs
password = apple
hosts = localhost
dbname = mailserver
query = SELECT destination FROM virtual_aliases WHERE source='%s'

여기에서 나는 변화를 시도 hosts = 127.0.0.1했지만 그것은 말한다warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (110)

그래서 나는 길을 잃었고 문제를 해결하기 위해 다른 곳을 바꿀지 모른다. 어떤 도움이라도 높이 주시면 감사하겠습니다.

감사합니다.

편집 1

netstat -na를 수행하면 mysql이 localhost 나 127.0.0.1에 바인딩되지 않습니다. 또한 문제가 될 수 있습니까?

bakhtiyor@ns1:~$ netstat -na | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN   

답변:


6

매우 어리석은 것처럼 보이지만 문제를 해결했습니다. 시스템 관리자가 방화벽의 모든 호스트에 대해 3306 포트를 어떻게 막았는지 알지 못하여 mysql에 연결할 수 없었습니다. 이 제한을 제거한 후 아무런 문제없이 mysql에 연결할 수있었습니다. 당신의 제안과 도움에 감사드립니다.


1
제한을 제거하는 방법?
녹색

소켓이 아닌 TCP를 통해 연결하고 싶습니다. 어떻게해야합니까? 감사.
krisanalfa

안녕 @ 그린, 어떤 해결책 u 제한을 제거하는 방법 또는 오히려 포트 3306에 제한이 있는지 찾는 방법?
Sushivam

3

나는 비슷한 문제가 있었다. "hosts = localhost"를 "hosts = 127.0.0.1"로 변경하고 bind-address를 동일한 주소로 설정하면 나를 위해 고정되었습니다 (어떤 이유로 바인딩 주소는 0.0.0.0으로 설정되었습니다)


bind-address를 0.0.0.0 (갈레 라로 수행 한 클러스터링에 필요)으로 그대로두고 TCP를 사용하도록 "host = 127.0.0.1 : 3306"으로 변경했습니다. 다른 사람들처럼 소켓을 Postfix chroot에 바인드 마운트하는 대신 이것을 결정했습니다.
Sean Reifschneider 2016 년

3

MySQL 서버에 연결하려고 했습니까?

mysql -u username -p

또한 /etc/mysql/my.cnf의 청취 주소를 127.0.0.1로 변경하고 MySQL을 다시 시작할 수 있습니다

# /etc/mysql/my.cnf
bind-address = 127.0.0.1

나는 당신이 말한 모든 결과를 보이지 않았습니다
Bakhtiyor

제가 mysql을 -u 사용자 이름 -p 사용하여 MySQL로 연결할 수 있음을 의미
Bakhtiyor

"my.cnf의"이어야한다
jnunn

2

회사 컴퓨터 중 하나에서 동일한 오류가 발생했습니다.

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

ssh를 통해 X-windows 프로그램을 실행하려고 할 때이 오류가 많이 발생했습니다.

GConf Error: Failed to contact configuration server; 
some possible causes are that you need to enable TCP/IP networking for ORBit,
or you have stale NFS locks due to a system crash

사용 가능한 디스크 공간이없는 완전히 채워진 루트 파일 시스템이 있었기 때문에 시스템에서 필요한 파일을 많이 쓸 수 없었습니다. 많은 다른 프로그램과 관련된 모든 종류의 오류가 발생했습니다. (GDM을 통해 로그인 할 수 없었습니다. GDM 배경 화면이 검게 변했습니다. gconf 잠금 파일 오류 등)

더 이상 필요하지 않은 루트 파티션에서 400MB 이상의 파일을 제거하기 위해이 간단한 명령을 입력하기 만하면됩니다.

sudo apt-get autoremove

루트 파일 시스템에 필요한 호흡 공간이 생겼습니다. 이제 모든 것이 잘 작동합니다. 10GB 루트 디렉토리로는 2 년 이상의 Ubuntu 업데이트를 처리하기에 충분하지 않습니다.

아무도 신경 쓰지 않으면 시스템은 우분투 10.04가 나온 이후로 실행 중입니다. 시스템은 적어도 일주일에 한 번 업데이트됩니다. 오늘 날짜는 2012 년 9 월 6 일이므로 업데이트 기간이 거의 2 년 반입니다.


당신의 문제가 공간 일 때, 나는 또한 askubuntu.com/questions/17432/…
ecoologic

공간 문제를 지적하여 +1-이것은 내 문제를 해결했습니다.
yuval

1

마지막으로 나를 제거하는 데 도움이 된 것은 제거 libmysqlclient16상태 에 있는 것을 제외하고 mysql과 관련된 모든 apt-get 패키지를 제거하는 것입니다 (제거하지 마십시오! ).

그래서, 그냥하십시오 :

dpkg --get-selections | grep mysql

그리고:

sudo apt-get purge <package_name>

common에서 시작한 다음 클라이언트로 이동 한 다음 서버로 이동하십시오.


이 답변이 도움이되지 않는다고 생각합니다. 문제는 차단 된 3306 포트이며 MySQL 패키지가 손상되지 않았습니다.
Nephente

이 명령은 패키지에 따라 다른 패키지를 제거합니다libmysqlclientXX
krisanalfa

차단 된 포트 3306을 찾는 방법?
Sushivam
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.