Intereting Posts
Ajax на интервале Сделайте таймер обратного отсчета кнопки, который будет отключен навсегда после 5 минут даже при обновлении страницы, он должен оставаться отключенным Смущает проблема PHP-сессии (Rackspace) Стратегии хранения изображений Ошибка SSL в вызове CURL для API Twitter Закрытие или создание_функции в PHP Обновление MongoDB: как проверить, удалось или не удалось выполнить обновление? Можно ли использовать встроенные комментарии для файлов .ini с PHP? как использовать CURL и PHP Простой HTML DOM Parser с объектом Как создать каскадные выпадающие списки с использованием mysql и php Для php flush – как отключить gzip для определенного файла? Каковы правильные разрешения для папки для загрузки с PHP / Apache? Как очистить переменные $ _GET, чтобы предотвратить инъекцию пути? как остановить множественный вход пользователя с тем же адресом электронной почты и паролем, как только пользователь уже зарегистрировался Как создать текст эха PHP?

MySQL работает с 127.0.0.1, но не работает с localhost?

У меня странная проблема в php MySQL:

php соединяется с 127.0.0.1 но не с localhost .

Как решить эту проблему?

localhost должен быть определен в вашем файле hosts, который по умолчанию используется для Windows и большинства ОС.

Проверьте следующий текстовый файл и посмотрите, что происходит:

 C:\WINDOWS\system32\drivers\etc\hosts 

Обратите внимание, что «хосты» – это файл, без расширения, это не папка. Этот файл должен быть довольно пустым, если вы видите записи, ваш блокиратор AV / спама добавил тонну записей, указывающих на 127.0.0.1, или неприятные вредоносные программы написали мусор там, несмотря на то, что новые записи ниже старых. Localhost должен быть первой записью в этом файле.

Попробуйте выполнить ping localhost в командной строке, это может быть разрешение на ::1: эквивалент IP6 для 127.0.0.1

Чтобы исправить это, добавьте (или раскомментируйте) строку:

  127.0.0.1 localhost 

в C:\WINDOWS\system32\drivers\etc\hosts

Также загляните в базу данных mysql, которая определяет привилегии доступа пользователя. Вы можете определить там, из каких источников хост-провайдеру разрешен доступ к данному пользователю. Для получения дополнительной информации вы можете обратиться к http://dev.mysql.com/doc/refman/5.1/en/connection-access.html.

Я помню, что это давняя и документированная функция Mysql для Windows. Что-то о том, как работают локальные сокеты.

Для macs, вот решение:

Подключитесь к MySQL, используя localhost вместо 127.0.0.1 на MAC. В течение долгого времени я подключался к MySQL на моей платформе разработки с 127.0.0.1, потому что по какой-то причине localhost не работал. Оказывается, это потому, что 127.0.0.1 использует TCP / IP, а localhost использует сокеты. Файл php.ini указывает на неправильное место для mysql.sock, поэтому все, что вам нужно сделать, это изменить его, перезапустить apache и voila!

 Open php.ini: /private/etc/php.ini Find the following line: mysql.default_socket = /var/mysql/mysql.sock Replace with: mysql.default_socket = /tmp/mysql.sock Restart apache: apachectl restart 

Примечание. В зависимости от вашей установки вам также может понадобиться обновить эти строки в php.ini:

 mysqli.default_socket = /tmp/mysql.sock pdo_mysql.default_socket = /tmp/mysql.sock 

Примечание. Если у вас нет файла php.ini, вам необходимо скопировать предоставленный по умолчанию метод php.ini.default

 sudo cp /private/etc/php.ini.default /private/etc/php.ini 

через http://madproject.com/general/connect-to-mysql-using-localhost-instead-of-127-0-0-1-on-a-mac/

Пытаться:

IE -> Инструменты -> Параметры -> Соединение -> Настройки локальной сети Проверьте прокси-сервер обхода для локальных адресов

Если MySQL подключается к 127.0.0.1, он делает это через TCP / IP, тогда как если он подключается к localhost, он делает это через сокет.
Является ли PHP в нужном месте для mysql.sock? Убедитесь, что php.ini и my.conf имеют соответствующие местоположения

Является ли localhost решением для IPv6-адреса, в отличие от IPv4, а MySQL не прослушивает адрес v4?

Решение заключается в том, чтобы localhost разрешить адрес v4, или заставить MySQL прослушивать адрес v6.

Если вы не на окнах также проверяете, подключается ли mysql через сокет, локально он обычно работает.

Принудительный tcp с клиентом mysql

 mysql -usomeone -p --protocol=TCP 

vs. socket (по умолчанию для linux)

 mysql -usomeone -p mysql -usomeone -p --protocol=socket 

Последний не работал для моего someone@127.0.0.1