Hiển thị máy chủ MySQL thông qua SQL Command


96
Show Database
Use database
show tables
Describe <table>

Tất cả tốt và tốt, nhưng nó có thể hiển thị máy chủ lưu trữ kết nối hiện tại. Không phải là connection_id, mà là Địa chỉ IP hoặc Tên của máy chủ.

Câu trả lời:


197

Để lấy tên máy chủ hiện tại: -

select @@hostname;
show variables where Variable_name like '%host%';

Để nhận máy chủ cho tất cả các yêu cầu đến: -

select host from information_schema.processlist;

Dựa trên nhận xét cuối cùng của bạn,
tôi không nghĩ rằng bạn có thể phân giải IP cho tên máy chủ bằng cách sử dụng hàm mysql thuần túy,
vì nó yêu cầu tra cứu mạng, có thể mất nhiều thời gian.

Tuy nhiên, tài liệu mysql đề cập đến điều này: -

resolveip google.com.sg

tài liệu: - http://dev.mysql.com/doc/refman/5.0/en/resolveip.html


Tôi không có máy chủ từ xa để kiểm tra trên ATM, nhưng "SELECT @@ hostname" cung cấp cho máy chủ cục bộ của tôi. Nếu phiên MySQL được kết nối với một máy chủ khác, nó có hiển thị tên máy chủ từ xa không? Tôi có thể lấy IP không?
Craig Stewart

Có, nó sẽ hiển thị máy chủ khác nếu bạn đến từ máy chủ khác. Tuy nhiên, để giải quyết IP tương ứng thì hơi khó ...
ajreal

Có thể lấy IP từ My-SQL không? Điều đó sẽ rất tuyệt. Lên một phiếu bầu cho @@ Tên máy chủ, cảm ơn bạn !! Sẽ chấp nhận nếu không thể thực hiện trên IP
Craig Stewart

Sử dụng dòng lệnh, lấy IP máy chủ từ xa được kết nối hiện tại trong SQL. Lý do, tuổi thọ của tập lệnh Tôi không thể chắc chắn 100% trong mã của mình rằng chúng tôi được kết nối với cùng một máy chủ lưu trữ !!
Craig Stewart

Malaysia, nhưng Singapore PR.
ajreal


6

Tôi nghĩ bạn cố gắng lấy máy chủ từ xa của người dùng kết nối ...

Bạn có thể nhận một Chuỗi như 'myuser @ localhost' từ lệnh:

SELECT USER()

Bạn có thể chia kết quả này trên dấu '@' để lấy các phần:

-- delivers the "remote_host" e.g. "localhost" 
SELECT SUBSTRING_INDEX(USER(), '@', -1) 

-- delivers the user-name e.g. "myuser"
SELECT SUBSTRING_INDEX(USER(), '@', 1)

nếu bạn đang kết nối qua địa chỉ ip, bạn sẽ nhận được địa chỉ ipad thay vì tên máy chủ.


1
show variables where Variable_name='hostname'; 

Điều đó có thể giúp bạn !!


Thú vị của tôi không trả lại gì với cái này.
Vitor Canova

Điều này trả về tên máy chủ, không phải tên máy khách cho kết nối, theo yêu cầu ...
Hartmut Holzgraefe
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.