Adakah yang tahu mengapa /var/run/mysqld/mysqld.sock
file socket saya tidak ada di komputer saya ketika saya menginstal (atau menginstal ulang) MySQL 5.1?
Saat ini, ketika saya mencoba untuk memulai server dengan mysqld, saya mendapatkan kesalahan seperti Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connect
, tetapi membuat file kosong dengan nama itu (seperti yang disarankan di forum ubuntu) tidak berhasil.
Saya memiliki mysql dan postgres yang berfungsi dengan baik sampai saya upgrade ke natty beberapa waktu yang lalu; Saya telah menghabiskan waktu berjam-jam berjalan melalui kedua database mencoba untuk mencari tahu apa yang sedang terjadi. Saya bisa menyerah pada postgres, tetapi saya tidak bisa bekerja tanpa copy mysql yang berfungsi.
Bagian yang paling aneh: Saya menggunakan Kubuntu, dan pemahaman saya adalah bahwa KDE menggunakan mysql untuk menyimpan izin pengguna, dll. Saya tidak mengalami masalah izin aneh; dapatkah saya menganggap ini berarti (entah bagaimana?) MySQL sebenarnya berfungsi?
Mungkin file socket ini hidup di tempat yang berbeda di natty? Apakah lebih mudah menginstal ulang os fresh? Pada titik ini, saya terbuka untuk semua saran yang akan berhenti membuang waktu saya.
sumber
/var/run/mysqld/mysqld.sock
akan dibuat. Seperti yang dikatakan @Paul, Anda harus menghapus file apa pun yang Anda masukkan ke lokasi itu.Jawaban:
File socket tidak benar-benar berisi data, ini mengangkutnya .. Ini adalah tipe file khusus yang tidak biasa yang dibuat dengan panggilan / perintah sistem khusus. Ini bukan file biasa.
Ini seperti pipa yang dapat digunakan oleh server dan klien untuk menghubungkan dan bertukar permintaan dan data. Juga, ini hanya digunakan secara lokal. Signifikansi hanyalah sebagai lokasi pertemuan yang disepakati dalam sistem file.
Membuat file lama biasa dan meletakkannya di lokasi itu dapat benar-benar mengganggu server membuatnya ... dan dengan demikian mencegah klien lokal dari terhubung ke server.
Rekomendasi saya adalah menghapus semua file yang Anda letakkan di lokasi. File soket khusus dibuat oleh server.
sumber
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connect
Ketika Anda menentukan
host=localhost
, klien mysql akan mencoba masuk ke server mysql menggunakan pipa bernama unix yang membutuhkan.sock
file.Ini dapat dilewati dengan menentukan host = 127.0.0.1. Ini akan membuat klien mysql menggunakan TCP untuk terhubung ke server.
Diambil dari dokumentasi MySQL :
sumber
mysql.sock
menghilang tanpa alasan yang baik di setiap versi MySQL yang saya gunakan (kembali ke 4.0). Ketika ini terjadi, saya masuk hanya seperti ini tetapi saya gunakan--protocol=tcp
sebagai gantinya--port
. Ketika Anda mematikan mysql, layanan mencari file socket. Dengan demikian, berlariservice mysql stop
akan gagal. Untuk mengatasi sakit kepala file socket yang hilang, saya menjalankanmysqladmin -h127.0.0.1 --protocol=tcp -uroot -p shutdown
. Oh, BTW, +1 !!!Socket adalah file pseudo khusus yang digunakan untuk transmisi data dengan membaca dan menulis, bukan penyimpanan data.
File soket dibuat ketika layanan dimulai dan dihapus ketika layanan dihentikan. Lokasi file didefinisikan
/etc/my.cnf
seperti ini:sumber
Dalam kasus saya, menjalankan
mysqld_safe
membuatmysqld.sock
file baru .Anda mungkin tidak akan mendapatkan prompt kembali, tetapi jika Anda memulai kembali sesi Anda, file mysqld.sock akan ada di suatu tempat. Temukan dengan
sumber
Saya memiliki masalah yang sama dengan mysqld.sock yang hilang. Saya pergi ke direktori yang berisi mysql, yaitu
/usr/bin
dalam kasus saya. Lalu saya mengeluarkan perintahDouble mysql bukan kesalahan ketik tetapi mysql adalah database yang akan selalu ada di instalasi MySQL baru. Saya tidak tahu apakah
--host
,--password
atau--port
diperlukan tetapi karena ini bekerja untuk saya menggunakan parameter ini saya termasuk mereka. Setelah MySQL muncul, saya masuk ke tabel pengguna sebagai mengatur kata sandi untuk root. Setelah MySQL muncul, file soket yang hilang telah dibuat. Saya harap ini membantu seseorang karena saya berjuang selama berhari-hari.sumber
Jika Anda menggunakan nginx php-fastcgi dan Anda mendapat 502 Bad Gateway error daripada Anda harus melihat konfigurasi virtual host Anda pada file konfigurasi nginx. Anda harus mengatur atau memperbaiki
fastcgi_pass
parameter. Inifastcgi_pass
adalah variabel untuk mengatur koneksi soket antara nginx dan php CGI.Masalah lain adalah skrip starter biner bisa melewatkan entri berikut (penting) terbuka dengan:
nano /usr/bin/php-fastcgi
Isi lengkap skrip pemula saya / usr / bin / php-fastcgi:
sumber