Не удается подключиться к 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?

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 .

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

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

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

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

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