Deklarasi soket harus ditempatkan di bawah [mysqld]
di my.cnf
Anda . Jika sudah mendeklarasikannya di sana dan masih menunjuk ke tempat lain misalnya tmp
, lalu my.cnf
Anda file yang telah Anda edit tidak terbaca saat mysql dimulai atau ada my.cnf
lainnya mengesampingkan yang telah Anda edit. Kasusnya mungkin juga ada Socket
kedua deklarasi dalam my.cnf
yang sama file yang menggantikan file yang Anda harapkan untuk dibaca di awal oleh mysql.
Anda dapat memeriksa jalur absolutnya dengan masuk ke mysql dan menjalankan:
mysql> show variables like 'socket';
+-----------------------------------------+-------------------------------+
| Variable_name | Value |
+-----------------------------------------+-------------------------------+
| socket | /yourpath/mysql.sock |
+-----------------------------------------+-------------------------------+
1 rows in set (0.00 sec)
Tidak ada tempat yang benar atau salah di linux untuk menyimpan soket, kecuali pada perangkat eksternal yang dilepas kapan saja atau folder yang dikosongkan dari waktu ke waktu. Anda perlu mengonfigurasi di mana Anda ingin meletakkannya.
Untuk klien konsol MySQL ada hal lain yang perlu dipertimbangkan:Klien tampaknya menggunakan nilai konfigurasi soket yang disediakan di [klien] alih-alih [mysqld]. Jika Anda memiliki beberapa pengaturan server MySQL seperti yang saya miliki (4.1, 5.5, 5.7), Anda mungkin ingin menggunakan opsi "--default-extra-file" dengan soket yang tertulis di bagian [client] untuk setiap server yang berbeda. Soket harus sama dengan yang ditentukan di bagian my.cnf [mysqld] yang digunakan di server. Berikut adalah contoh default-extra-file.cnf, ingatlah untuk mengubah pengguna, kata sandi, dan soket sesuai kebutuhan Anda - dan pertahankan hak akses 400 (ada kata sandi yang disimpan):
[client]
user = guardian
password = I-4m.Gr00t!
host = localhost
socket = /var/run/mysqld/mysqld-5.6.sock
Ini hanya berlaku jika Anda menggunakan "localhost" sebagai nilai untuk "host". Jika Anda memiliki beberapa alamat lokal (127.0.0.2, 127.0.0.3), Anda harus meninggalkan variabel konfigurasi untuk "host" di "localhost" untuk menggunakan soket yang telah dikonfigurasi. Jika tidak, klien akan terhubung ke server menggunakan TCP.
Ini telah diuji pada Server Debian 9.5 saya dengan MySQL 4.1.22, 5.5.49 dan 5.7.19 dan klien masing-masing.