2016-12-11 2 views
-1

Это может быть очень глупый вопрос, но я * ма новичок в MySQL, и я только что обнаружил, что MySQL имеет различные IP-адрес 127.0.0.1, т.е. и его имя хоста (LOCALHOST), чем машина IP, которая 192,168. 1.3 и машинное имя хоста ceres, почему это так?Почему мой IP-адрес MySQL отличается от IP-адреса физического сервера?

Я подключен к MySQL работает на другом компьютере с помощью MySQL Workbench:

и показывает, что он вошел в меня тузд суперпользователя к 127.0.0.1 на [email protected]

enter image description here

enter image description here

Я хотел бы вставить данные в db удаленно, используя arduino MCU, и я определенно не могу написать 127.0.0.1

+0

В терминале введите 'ping ceres' - что он возвращает? Затем попробуйте подключиться через IP (vs hostname) - что-нибудь изменилось? В любом случае MySQL может (и, вероятно,) связан с разными интерфейсами. Loopback (127.0.0.1) и сетевой интерфейс машин: оба представляют конечные точки подключения к одному экземпляру MySQL. – user2864740

+0

Я получаю ответы от 192.168.1.3, но я не могу подключиться к MySQL, используя тот же ip с номером порта 3306 –

+0

Вам также нужно проверить, что у вас установлены правильные настройки GRANT. 'SHOW GRANTS FOR 'user' @ 'IP_address';'. Вы можете проверить пользователей и хосты, у которых есть GRANT, заданные с помощью пользователя SELECT, хост FROM mysql.user' – Guriandoro

ответ

0

Каждый сервер IP 127.0.0.1 для себя. Если вы хотите подключиться к MySQL, установленному на компьютере, на котором вы вошли в систему, вы будете использовать IP 127.0.0.1 или localhost, но если вы хотите подключиться к MySQL на этом компьютере с помощью другого компьютера, вам придется идентифицировать его IP, чтобы вы можете подключиться через этот IP-адрес. Поэтому удаленно подключитесь к серверу MySQL через IP 192.168.1.3, а не на 127.0.0.1. localhost по-прежнему IP 127.0.0.1

+0

Я просто повторил поиск Google с разными ключевыми словами и обнаружил, что мне нужно изменить адрес привязки MySQL –

0

127.0.0.1 - это интерфейс обратной петли и используется, когда вы пытаетесь подключиться к службе mysql локально (на том же сервере, на котором работает служба mysql).

Если вам нужно подключиться к службе mysql с другого компьютера, для этого вам понадобится его IP-адрес. Вы можете использовать ifconfig, чтобы узнать, какой IP-адрес назначен серверу.

0

Вам нужно понять немного о TCP/IP, чтобы следить за тем, что здесь происходит. Каждый стек TCP/IP (реализация) имеет внутренний loopback-интерфейс по адресу 127.0.0.1 (для IPv4) или ::1 (для IPv6). Это упрощает доступ к стеку на локальном компьютере, не зная, что это TCP/IP-адрес (или даже если он отсутствует).

Затем каждой машине, участвующей в сети TCP/IP, нужен адрес, по которому он известен в этой сети (в вашем случае 192.168.1.3). Когда вы работаете на локальном компьютере, не имеет значения, используете ли вы его общедоступный IP-адрес или интерфейс loopback. Третьим вариантом является имя localhost, которое разрешает интерфейс loopback. Но будьте осторожны: это зависит от ОС, если это закончится в версии IPv4 или IPv6.

Как вы знаете, вы можете указать хост для пользователя, который решает, с которого он может подключиться. И здесь [email protected] и [email protected] (или [email protected]::1) являются не того же хозяина. Терминал MySQL неявно рассматривает IP-адрес localhost и loopback как один и тот же, для удобства пользователя, но другие клиенты этого не делают. Указанный здесь адрес привязки обычно вообще не участвует. Это относится к специальным сценариям, которые здесь не актуальны. За более чем 10 лет мне никогда не приходилось устанавливать адрес привязки для MySQL.

Обновление: Я надеюсь, что нисходящие комментаторы прокомментируют свое действие, чтобы показать, нужно ли что-то улучшить в моем ответе или они просто невежественны.

Смежные вопросы