Я новичок в php, database и linux, и у меня возникла проблема, когда я не смог подключиться к базе данных mysql с помощью функции php mysql_connection. Когда я использовал IP-адрес своей виртуальной машины, я получал ошибку соединения.

После часа обхода структуры каталогов linux я нашел /etc /hosts / и заметил 2 ip-адреса. Мой адрес обратной связи и 127.0.1.1. Просто, черт возьми, я использовал 127.0.1.1 и смог подключиться к своей базе данных и получить данные, которые я запрашивал. Я не понимаю, почему работает 127.0.1.1, но не ip моего сервера VM.

Могут ли некоторые объяснить, что означает для 127.0.1.1? Из того, что я прочитал, можно узнать имя хоста моего устройства, но я не понимаю, что это значит.

1 ответ1

0

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

Когда серверное программное обеспечение запускается, оно может выбрать определенный IP-адрес, с которым он будет связан. В качестве функции безопасности многие службы будут привязываться к адресу 127.0.0.1 или к некоторой сети `` 127.0.0.0/8` вместо того, чтобы прослушивать соединения по IP-адресам, связанным с сетевыми интерфейсами. Это делает эти конкретные услуги доступными только из самой системы.

Mysql на Ubuntu является примером этого. В /etc/mysql/my.cnf он имеет настройку в конфигурации по умолчанию для bind-address = 127.0.0.1 . Это означает, что демон MySQL может использоваться только локально, если вы не измените этот параметр вручную. Простое комментирование строки `` bind-address` сделает mysql по умолчанию прослушиванием всех связанных IP-адресов с вашей системой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .