Tại sao công cụ dòng lệnh MySQL bỏ qua tham số --port?


89

Đây là những gì tôi đang làm:

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

Lệnh hoạt động (kết nối với cổng 3306) bất kể tôi cung cấp gì trong --portđối số. Tôi có hai máy chủ mysql chạy trên một máy và muốn kết nối với máy thứ hai bằng cách cung cấp rõ ràng số cổng của nó. Chuyện gì đang xảy ra vậy? Tại sao mysqlbỏ qua tham số này?

Câu trả lời:


155

Khi localhosttham số đã cho, MySQL sử dụng socket. Sử dụng 127.0.0.1thay thế.


14
Khá tức giận rằng sự thật này không được đề cập trên trang người dùng mysql.
Janek

1
Bên cạnh câu trả lời được chấp nhận ở đây, một lời giải thích thêm có thể được tìm thấy trong bugreport mysql này và cũng liên kết đến trang man . Là một trong những người bình luận trong trang bugreport, tôi cũng không hiểu tại sao khách hàng ít nhất không đưa ra cảnh báo trong trường hợp sử dụng 'localhost' trong chuỗi kết nối.
bukva-ziu

2
Bạn là một người đàn ông cứu mạng!
Touqeer Shafi

Tôi đang sử dụng mysql được một thập kỷ, nhưng điều này vẫn chưa vượt qua được, nhưng ...
pscheit
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.