Показать хост MySQL через команду SQL

97
Show Database
Use database
show tables
Describe <table>

Все хорошо и хорошо, но можно ли показать текущие соединения хоста. Не connection_id, а IP-адрес или имя хоста.

Крейг Стюарт
источник

Ответы:

200

Чтобы получить текущее имя хоста: -

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

Чтобы получить хосты для всех входящих запросов: -

select host from information_schema.processlist;

Основываясь на вашем последнем комментарии,
я не думаю, что вы можете разрешить IP для имени хоста с помощью чистой функции mysql,
поскольку для этого требуется поиск в сети, что может занять много времени.

Однако в документе mysql упоминается это: -

resolveip google.com.sg

документы: - http://dev.mysql.com/doc/refman/5.0/en/resolveip.html

аджреал
источник
У меня нет удаленного хоста для тестирования на ATM, но "SELECT @@ hostname" дает мой локальный хост. Если сеанс MySQL подключен к другому хосту, будет ли отображаться имя удаленного хоста? Могу я получить IP?
Крейг Стюарт,
Да, он будет показывать другой хост, если вы пришли с другого хоста. Однако разрешить соответствующий IP-адрес немного сложно ...
аджреал
Можно ли получить IP из My-SQL? Это было бы прекрасно. Спасибо за @@ Hostname на один голос! Приму, если это невозможно, по IP
Крейг Стюарт
Используя командную строку, получите текущий IP-адрес подключенного удаленного хоста в SQL. Причина, долговечность скрипта Я не могу быть на 100% уверен в своем коде, что мы подключены к одному и тому же хосту !!
Крейг Стюарт
Малазийский, но сингапурский пиар.
ajreal 07
17

Может быть

mysql> show processlist;
Адриан Корниш
источник
1
Это плохой совет, если вы пытаетесь получить удаленный доступ.
Виджай Кумар Канта
6

Я думаю, вы пытаетесь получить удаленный хост подключенного пользователя ...

Вы можете получить строку типа myuser @ localhost из команды:

SELECT USER()

Вы можете разделить этот результат на знак '@', чтобы получить части:

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

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

если вы подключаетесь через IP-адрес, вы получите IP-адрес вместо имени хоста.

Радон8472
источник
1
show variables where Variable_name='hostname'; 

Это могло бы вам помочь !!

Гаутам Вакани
источник
Интересный мой возврат ничего с этим.
Витор Канова
Это возвращает имя хоста сервера, а не имя хоста клиента для соединения, как было запрошено ...
Хартмут Хольцграфе,