Mariadb tidak dapat terhubung ke server mysql lokal melalui soket

Saya mendapatkan kesalahan ini kemarin ketika mencoba menyambung ke database mysql saya setelah menjalankannya dengan NodeJS. Ada banyak informasi yang saling bertentangan di web karena cara Anda mengunduh mysql, versi, OS yang Anda gunakan, dll.

Untuk perbaikan cepat pada sistem unix saya sarankan melakukan hal berikut. Langkah-langkah di bawah ini berhasil untuk saya, dan mungkin juga berhasil untuk Anda. Namun, Anda harus menginstal HomeBrew jika Anda belum memilikinya

Saya memiliki 3 node MariaDB. Ingin mengonfigurasi cluster. Ditentukan dalam gcomm. // di saya. cnf ips dari semua anggota dalam cluster menurut ini

Dan menambahkan ?pc.wait_prim=no_ pada saat itu dari gcomm. //ip1,ip2,ip3

Kemudian proses mysqld dimulai pada setiap VM, tetapi ketika saya mencoba menghubungkannya dengan mysql -uroot -ppass untuk menjalankan

SET GLOBAL wsrep_provider_options="pc.bootstrap=1";

kesalahan muncul

Tidak dapat terhubung ke server MySQL lokal melalui socket '/var/run/mysqld/mysqld. sock' (2 "Tidak ada file atau direktori seperti itu")

Pengguna yang bekerja dengan MySQL dapat mengalami kesalahan 'Tidak dapat terhubung ke server MySQL lokal melalui soket'/var/run/mysqld/mysqld. sock (2)' saat masuk ke antarmuka MySQL. Masalah ini biasanya muncul jika MySQL tidak bisa mengakses mysqld. file soket kaus kaki

Dalam tutorial ini, kita akan membahas kemungkinan penyebab kesalahan 'Tidak dapat terhubung ke server MySQL lokal melalui soket' dan menunjukkan kepada Anda berbagai metode untuk menyelesaikan masalah ini

How to fix 'can't connect to local MySQL server through socket' error

Prasyarat

  • Sistem yang menjalankan Ubuntu 20. 04
  • Akun pengguna dengan hak sudo
  • Akses ke jendela terminal/baris perintah
  • Salinan MySQL terinstal dan siap digunakan (pelajari cara menginstalnya dengan panduan kami untuk menginstal MySQL di Ubuntu 20. 04)

Menyelesaikan 'Tidak dapat terhubung ke server MySQL lokal melalui soket'/var/run/mysqld/mysqld. kaus kaki' (2)' Kesalahan

Ada beberapa cara untuk mengatasi 'Tidak dapat terhubung ke server MySQL lokal melalui soket'/var/run/mysqld/mysqld. kaus kaki (2)' kesalahan. Jika satu solusi tidak berhasil, turunkan daftar sampai Anda menemukan solusi yang menyelesaikan masalah

Metode 1. Periksa Layanan MySQL

1. Periksa status layanan MySQL dengan

sudo systemctl status mysql
_

Checking the status of the MySQL service

2. Jika layanan tidak berjalan, mulai ulang dengan menggunakan

sudo systemctl start mysql

3. Untuk mencegah masalah ini terjadi, setel layanan MySQL untuk memulai secara otomatis saat boot

sudo systemctl enable mysql

Set the MySQL service to automatically start when the system boots up

Metode 2. Verifikasi mysqld. Lokasi kaus kaki

Pesan 'Tidak dapat terhubung ke server MySQL lokal melalui soket'/var/run/mysqld/mysqld. kesalahan sock' (2)' juga terjadi jika MySQL tidak dapat menemukan file mysql. file soket kaus kaki

1. Temukan mysqld saat ini. lokasi sock dengan menggunakan perintah

sudo systemctl start mysql
_3 untuk membuat daftar semua file socket di sistem Anda

sudo find / -type s

List all the socket files on your system using the find command

2. Buka file konfigurasi MySQL di editor teks pilihan Anda. Dalam contoh ini, kami menggunakan nano

sudo nano /etc/mysql/my.cnf
_

3. Kemudian, tambahkan baris berikut di akhir file konfigurasi MySQL

[mysqld]
socket=[path to mysqld.sock]
[client]
socket=[path to mysqld.sock]

Di mana

  • sudo systemctl start mysql
    _4. Jalan menuju mysqld. file soket kaus kaki yang Anda temukan di Langkah 1

Edit the MySQL configuration file

Metode lain adalah membuat symlink dari lokasi mysqld. sock ke direktori /var/run/mysqld

ln -s [path to mysqld.sock] /var/run/mysqld/mysqld.sock
_

4. Tekan Ctrl+X untuk menutup file konfigurasi dan ketik Y dan tekan Enter untuk menyimpan perubahan yang Anda buat

4. Terakhir, restart layanan MySQL

sudo systemctl restart mysql

Metode 3. Periksa Izin Folder MySQL

Penyebab potensial lainnya adalah Layanan MySQL tidak dapat mengakses direktori /var/run/mysqld karena pembatasan izin

1. Untuk mengatasi masalah ini, ubah pengaturan izin untuk direktori mysqld dengan

sudo chmod -R 755 /var/run/mysqld

Menyetel izin ke

sudo systemctl start mysql
_5 memungkinkan pengguna root untuk membaca, menulis, dan mengeksekusi direktori, sementara pengguna lain hanya dapat membaca dan mengeksekusi

2. Mulai ulang layanan MySQL agar perubahan diterapkan

sudo systemctl restart mysql

Metode 4. Periksa Beberapa Instance MySQL

Error juga terjadi jika ada beberapa instance MySQL yang berjalan pada waktu yang bersamaan

1. Untuk mendaftar semua contoh MySQL, gunakan

sudo systemctl start mysql
0

Listing all currently running instance of MySQL

2. Jika ada beberapa instance MySQL yang berjalan, hentikan dengan

sudo systemctl start mysql
1

3. Mulai ulang layanan MySQL untuk memulai satu contoh MySQL

sudo systemctl restart mysql

Kesimpulan

Setelah membaca tutorial ini, Anda seharusnya telah mengidentifikasi penyebab kesalahan 'Tidak dapat terhubung ke server MySQL lokal melalui soket' dan menerapkan solusi yang sesuai

Bagaimana cara terhubung ke MySQL melalui soket?

Hubungkan ke MySQL dengan soket unix .
Temukan file soket Unix Di host server di baris perintah, jalankan perintah berikut. .
Periksa koneksi soket Unix dari baris perintah.
Unduh pustaka pihak ketiga.
Konfigurasikan driver MySQL di DataGrip.
Buat koneksi ke server MySQL

Tidak dapat terhubung ke server MySQL lokal?

Berikut adalah beberapa alasan kesalahan Tidak dapat terhubung ke server MySQL lokal mungkin terjadi. mysqld tidak berjalan di host lokal . Periksa daftar proses sistem operasi Anda untuk memastikan proses mysqld ada. Anda menjalankan server MySQL di Windows dengan banyak koneksi TCP/IP.

Bagaimana cara memperbaiki host tidak diizinkan untuk terhubung ke server MariaDB ini?

Dari output perintah, pengguna hanya diperbolehkan untuk terhubung ke server database dari localhost. Jadi, kita perlu memperbarui host pengguna sebagai berikut. Untuk memberi pengguna akses jarak jauh dari semua host di jaringan, gunakan sintaks di bawah ini. MariaDB [(tidak ada)]> GRANT ALL ON database_name.