Saat menggunakan klien MySQL (mis. mysql
) Bagaimana saya bisa menentukan apakah itu terhubung ke server menggunakan file soket Unix atau dengan menggunakan TCP / IP?
Coba gunakan netstat -ln | grep 'mysql'
dan Anda dapat melihat bagaimana itu terhubung oleh output. jika Anda memiliki akses ke shell
Di Unix, program MySQL memperlakukan nama host localhost secara khusus, dengan cara yang mungkin berbeda dari apa yang Anda harapkan dibandingkan dengan program berbasis jaringan lainnya. Untuk koneksi ke localhost, program MySQL mencoba untuk terhubung ke server lokal dengan menggunakan file soket Unix.
Ini terjadi bahkan jika opsi --port
atau -P
diberikan untuk menentukan nomor port.
Jika Anda ingin mengetahui jenis koneksi dari dalam mysql CLI, gunakan perintah '\ s' (status).
mysql> \s
Output akan memiliki garis seperti berikut ini (pada Unix).
Connection: 127.0.0.1 via TCP/IP
atau
Connection: Localhost via UNIX socket
Untuk memastikan bahwa klien membuat koneksi TCP / IP ke server lokal, gunakan --host
atau -h
untuk menentukan nilai nama host 127.0.0.1, atau alamat IP atau nama server lokal. Anda juga dapat menentukan protokol koneksi secara eksplisit, bahkan untuk localhost, dengan menggunakan --protocol=TCP
opsi. Sebagai contoh:
shell> mysql --host=127.0.0.1
shell> mysql --protocol=TCP
The --protocol={TCP|SOCKET|PIPE|MEMORY}
pilihan secara eksplisit menentukan protokol yang digunakan untuk menghubungkan ke server. Ini berguna ketika parameter koneksi lain biasanya akan menyebabkan protokol digunakan selain yang Anda inginkan. Misalnya, koneksi di Unix ke localhost dibuat menggunakan file soket Unix secara default:
shell> mysql --host=localhost
Untuk memaksa koneksi TCP / IP digunakan sebagai gantinya, tentukan --protocol
opsi:
shell> mysql --host=localhost --protocol=TCP
Sambungan file soket Unix lebih cepat dari TCP / IP, tetapi hanya dapat digunakan saat menyambung ke server di komputer yang sama.