Mengapa alat baris perintah MySQL mengabaikan parameter --port?

90

Inilah yang saya lakukan:

mysql --host=localhost --port=9999 mysql -u root -p --execute="show tables;"

Perintah itu berfungsi (menghubungkan ke port 3306) tidak peduli apa yang saya berikan dalam --portargumen. Saya memiliki dua server mysql yang berjalan di satu mesin, dan ingin terhubung ke yang kedua dengan secara eksplisit memberikan nomor port-nya. Apa yang sedang terjadi? Mengapa mysqlmengabaikan parameter ini?

yegor256
sumber

Jawaban:

156

Ketika localhostparameter diberikan, MySQL menggunakan soket. Gunakan 127.0.0.1sebagai gantinya.

PUSAT
sumber
14
Cukup menyebalkan bahwa fakta ini tidak disebutkan di halaman manual mysql.
Janek
1
Selain jawaban yang diterima di sini, sedikit penjelasan lebih lanjut dapat ditemukan di laporan bug mysql ini dan juga tautan ke halaman manual . Sebagai salah satu komentator di halaman bugreport, saya juga tidak mengerti mengapa klien tidak setidaknya memberikan peringatan jika menggunakan 'localhost' dalam string koneksi.
bukva-ziu
3
Anda adalah pria penyelamat hidup!
Touqeer Shafi
Saya menggunakan mysql selama satu dekade sekarang, tapi ini tidak
menyimpang