ทำไมเครื่องมือบรรทัดคำสั่ง MySQL ไม่สนใจพารามิเตอร์ --port


89

นี่คือสิ่งที่ฉันทำ:

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

คำสั่งใช้งานได้ (เชื่อมต่อกับพอร์ต 3306) ไม่ว่าฉันจะให้อะไรในการ--portโต้แย้ง ฉันมีเซิร์ฟเวอร์ mysql สองเครื่องที่ทำงานในเครื่องเดียวและต้องการเชื่อมต่อกับเซิร์ฟเวอร์ที่สองโดยระบุหมายเลขพอร์ตอย่างชัดเจน เกิดอะไรขึ้น? เหตุใดจึงไม่mysqlสนใจพารามิเตอร์นี้

คำตอบ:


155

เมื่อlocalhostกำหนดพารามิเตอร์ MySQL จะใช้ซ็อกเก็ต ใช้127.0.0.1แทน


14
ค่อนข้างโกรธว่าข้อเท็จจริงนี้ไม่ได้กล่าวถึงในหน้า man mysql
Janek

1
นอกจากนี้ยังได้รับการยอมรับคำตอบที่นี่คำอธิบายอีกเล็กน้อยสามารถพบได้ในนี้รายงานข้อบกพร่อง MySQLและยังเชื่อมโยงไปยังหน้าคน ในฐานะที่เป็นหนึ่งในผู้แสดงความคิดเห็นในหน้ารายงานข้อผิดพลาดฉันยังไม่เข้าใจว่าเพราะเหตุใดไคลเอ็นต์จึงไม่ส่งคำเตือนในกรณีที่ใช้ 'localhost' ในสตริงการเชื่อมต่อ
bukva-ziu

2
คุณเป็นคนช่วยชีวิต!
Touqeer Shafi

ตอนนี้ฉันใช้ mysql มาสิบปีแล้ว แต่นี่ยังไม่ผ่านฉันเลย ...
P.Scheit
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.