Не удается подключиться к mysql с 127.0.0.1

Со следующим кодом я могу подключиться к mysql: mysql_connect("localhost","username","");

Но если я изменяю localhost на 127.0.0.1, я получаю следующую ошибку:

Невозможно подключиться к серверу MySQL на "127.0.0.1" (13)

Почему он не работает с 127.0.0.1?

Ответ 1

localhost имеет специальную оболочку и использует UNIX-сокеты вместо TCP/IP. 127.0.0.1 не получает эту специальную обработку.

Смотрите документацию:

В Unix программы MySQL обрабатывают имя хоста localhost специально таким образом, который, вероятно, отличается от ожидаемого по сравнению с другими сетевыми программами. Для соединений с localhost программы MySQL пытаются подключиться к локальному серверу с помощью файла сокета Unix. Это происходит, даже если задана опция -port или -P для указания номера порта. Чтобы клиент установил TCP/IP-соединение с локальным сервером, используйте -host или -h, чтобы указать значение имени узла 127.0.0.1 или IP-адрес или имя локального сервера. Вы также можете указать протокол подключения явно, даже для localhost, с помощью опции --protocol = TCP.

Если он не работает при использовании TCP/IP, база данных, вероятно, не прослушивается в сети. Это, как правило, хорошо, так как повышает безопасность (не то, что прослушивание 127.0.0.1 вызывает какие-либо проблемы, но прослушивание всех интерфейсов дает больше возможностей для атак).

Если вы действительно хотите разрешить подключения через сеть, см. skip-networking.

Ответ 2

У вас есть запись в вашем файле хостов, отображающая 127.0.0.7 на localhost?

Ответ 3

У вас в вашей системе установлено или работает более 1 сервера mysql? Если да, укажите номер порта сервера mysql, к которому вы пытаетесь получить доступ, например 127.0.0.1:3306,127.0.0.1:8889 и т.д.

Если вы не знаете, есть ли в вашей системе другие экземпляры сервера mysql, укажите порт.

Ответ 4

Вы сможете получить к нему доступ при добавлении привилегий для 'root'@'127.0.0.1' в таблице "USER_PRIVILEGES" в базе "information_schema"

Ответ 5

Вы также можете попробовать отключить SELINUX