Pertanyaan Tidak dapat terhubung ke server MySQL lokal melalui soket '/var/run/mysqld/mysqld.sock' (2)


Saya memiliki konfigurasi mailserver menggunakan dovecot + postfix + mysql dan itu berjalan lancar di server (Ubuntu Server). Tetapi selama minggu terakhir itu berhenti bekerja dengan benar. Itu tidak mengirim email. Ketika saya mencoba telnet localhost smtp Saya berhasil menghubungkan tetapi ketika saya melakukannya mail from:<steve@example.com> dan tekan Enter, hang, tidak terjadi apa-apa.

Setelah ditinjau /var/log/mail.log file Saya telah menemukan bahwa mungkin (99%) masalahnya ada di postfix ketika mencoba untuk terhubung ke server MySQL. Jika Anda melihat file log yang diberikan di bawah ini, Anda dapat melihat apa yang dikatakannya 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

Saya mencoba netstat -ln | grep mysql dan itu kembali

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

Isi dari /etc/postfix/mysql-virtual-alias-maps.cf file ada di sini:

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

Di sini saya mencoba untuk berubah hosts = 127.0.0.1 tetapi dikatakan warning: connect to mysql server 127.0.0.1: Can't connect to MySQL server on '127.0.0.1' (110)

Jadi, saya tersesat dan tidak tahu harus pindah ke mana untuk menyelesaikan masalah. Bantuan apa pun akan sangat dihargai.

Terima kasih.

EDIT 1

Ketika saya melakukan netstat -na saya melihat bahwa mysql tidak mengikat baik untuk localhost maupun 127.0.0.1. Mungkinkah masalahnya juga?

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

9
2017-11-14 17:30


asal




Jawaban:


Tampaknya sangat bodoh tetapi saya telah memecahkan masalah. Saya tidak menyadari bahwa administrator sistem memblokir port 3306 untuk semua host di firewall, dan karena itu saya tidak bisa terhubung ke mysql. Setelah menghapus pembatasan itu saya dapat terhubung ke mysql tanpa masalah. Terima kasih atas saran dan bantuan Anda.


6
2018-02-02 06:23



Bagaimana cara menghapus batasan? - Green
Saya ingin terhubung melalui TCP, bukan melalui soket. Bagaimana saya bisa melakukannya? Terima kasih. - krisanalfa
Hai @Green, solusi apa pun yang Anda ambil tentang cara menghapus pembatasan atau tepatnya bagaimana menemukan apakah ada pembatasan pada port 3306? - Sushivam


Saya memiliki masalah serupa. Mengubah "hosts = localhost" menjadi "hosts = 127.0.0.1" dan pengaturan bind-address ke alamat yang sama memperbaikinya untuk saya (bind-address ditetapkan pada 0.0.0.0 karena alasan tertentu)


3
2018-01-30 08:28



Saya dapat meninggalkan bind-address sebagai 0.0.0.0 (yang diperlukan untuk pengelompokan yang saya lakukan dengan galera), dan hanya mengubah "host = 127.0.0.1: 3306" untuk mengubahnya menjadi menggunakan TCP. Saya memutuskan ini bukan mengikat-mount soket ke chroot Postfix seperti yang dilakukan orang lain. - Sean Reifschneider


Sudahkah Anda mencoba menyambung ke server Mysql?

mysql -u username -p

Juga, Anda dapat mencoba mengubah alamat mendengarkan di /etc/mysql/my.cnf ke 127.0.0.1 dan me-restart MySQL

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

3
2017-11-14 19:26



Saya melakukan semua yang Anda katakan dan tidak ada hasilnya - Bakhtiyor
i mean i dapat terhubung ke mysql menggunakan mysql -u username -p - Bakhtiyor
Harus "my.cnf" - jnunn


Saya baru saja mendapatkan kesalahan yang sama ini pada salah satu komputer perusahaan.

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

Saya juga mendapatkan kesalahan ini banyak ketika saya mencoba menjalankan program X-windows melalui ssh:

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

Ternyata saya memiliki sistem file root yang sepenuhnya terisi, tanpa ruang disk kosong, sehingga sistem saya tidak dapat menulis banyak file yang diperlukan. Saya mendapatkan berbagai macam kesalahan, terkait dengan banyak program yang berbeda. (Tidak dapat masuk melalui GDM, wallpaper GDM menjadi hitam, gconf lock file errors, dll ...)

Yang saya lakukan hanyalah memasukkan perintah sederhana ini untuk menyingkirkan file dengan ukuran lebih dari 400 MB di partisi root yang tidak lagi diperlukan.

sudo apt-get autoremove

Itu memberi sistem file root saya ruang bernafas yang dibutuhkannya. Sekarang semuanya berjalan dengan baik. Tebak direktori root 10 GB tidak cukup untuk menangani pembaruan Ubuntu selama dua tahun.

Jika ada yang peduli, sistem telah menjalankan Ubuntu 10.04 sejak keluar. Pembaruan sistem setidaknya sekali seminggu. Tanggal hari ini adalah 9-6-2012, jadi itu hampir 2 1/2 tahun pembaruan.


2
2017-09-06 06:46



ketika masalah Anda adalah ruang, saya juga menyarankan askubuntu.com/questions/17432/… - ecoologic
+1 untuk menunjukkan masalah ruang - ini memecahkan masalah saya. - yuval


Yang akhirnya membantu saya adalah membersihkan (tidak menghapus!) Semua paket apt-get yang terkait dengan mysql kecuali libmysqlclient16 yang dalam status de-instal (tidak yakin apa itu).

Jadi, lakukan saja:

dpkg --get-selections | grep mysql

lalu:

sudo apt-get purge <package_name>

Mulai dari umum lalu pergi ke klien dan kemudian server.


1
2018-05-05 14:02



Saya pikir jawaban ini tidak membantu. Masalahnya adalah port 3306 yang diblokir, bukan paket MySQL yang rusak. - Nephente
COMMAND INI AKAN MENGHAPUS SETIAP PAKET TERGANTUNG libmysqlclientXX - krisanalfa
bagaimana menemukan port 3306 yang diblokir? - Sushivam