Câu trả lời:
Hãy thử sử dụng netstat -ln | grep 'mysql'
và bạn có thể thấy nó được kết nối bởi đầu ra như thế nào. nếu bạn có quyền truy cập vào shell
Trên Unix, các chương trình MySQL đối xử đặc biệt với tên máy chủ localhost, theo cách có khả năng khác với những gì bạn mong đợi so với các chương trình dựa trên mạng khác. Đối với các kết nối đến localhost, các chương trình MySQL cố gắng kết nối với máy chủ cục bộ bằng cách sử dụng tệp ổ cắm Unix.
Điều này xảy ra ngay cả khi một --port
hoặc -P
tùy chọn được đưa ra để chỉ định số cổng.
Nếu bạn muốn biết loại kết nối từ bên trong mysql CLI, hãy sử dụng lệnh '\ s' (status).
mysql> \s
Đầu ra sẽ có một dòng giống như một trong những điều sau đây (trên Unix).
Connection: 127.0.0.1 via TCP/IP
hoặc là
Connection: Localhost via UNIX socket
Để đảm bảo rằng máy khách tạo kết nối TCP / IP đến máy chủ cục bộ, hãy sử dụng --host
hoặc -h
chỉ định giá trị tên máy chủ là 127.0.0.1 hoặc địa chỉ IP hoặc tên của máy chủ cục bộ. Bạn cũng có thể chỉ định rõ ràng giao thức kết nối, ngay cả đối với localhost, bằng cách sử dụng --protocol=TCP
tùy chọn. Ví dụ:
shell> mysql --host=127.0.0.1
shell> mysql --protocol=TCP
Các --protocol={TCP|SOCKET|PIPE|MEMORY}
tùy chọn xác định một cách rõ ràng một giao thức sử dụng để kết nối đến máy chủ. Nó rất hữu ích khi các tham số kết nối khác thông thường sẽ khiến giao thức được sử dụng khác với giao thức bạn muốn. Ví dụ: các kết nối trên Unix đến localhost được tạo bằng tệp socket Unix theo mặc định:
shell> mysql --host=localhost
Để buộc kết nối TCP / IP được sử dụng thay thế, hãy chỉ định một --protocol
tùy chọn:
shell> mysql --host=localhost --protocol=TCP
Kết nối tệp ổ cắm Unix nhanh hơn TCP / IP, nhưng chỉ có thể được sử dụng khi kết nối với máy chủ trên cùng một máy tính.