Мой файл / etc / hosts выглядит так:
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
При сборке сервера я обнаружил, что, хотя я мог успешно пропинговать localhost, в некоторых файлах конфигурации для сервисов, таких как Postfix и Apache и Dovecot, мне нужно было указать 127.0.0.1
вместо localhost
того, чтобы заставить их работать.
Мне также нужно было изменить конфигурационные файлы определенных веб-сайтов, управляемых базой данных, которые использовались localhost
для подключения к MySQL.
Я пробовал различные модификации hosts
файла, но пока ничего не помогло.
Сервер работает под управлением Ubuntu 12.04.02 LTS. На нем не установлено selinux, и описанная выше ситуация сохраняется даже после установки политик IPtables по умолчанию для их принятия и сброса.
127.0.0.1
(кроме одного, который есть%
). Я думаю, что этого достаточно, чтобы я мог это исправить, поэтому я, вероятно, вскоре приму ваш ответ.localhost
какsocket
вместоTCP
).Большинство клиентов MySQL странно в том факте, что если вы укажете хост как
localhost
, они псевдоним этого соединения с сокетом вместо соединения TCP. Ваши варианты: либо придерживаться,127.0.0.1
либо, если клиент поддерживает это (как двоичный файл CLI mysql делает с--protocol
флагом), заставить его использовать TCP вместо сокета unix.источник
127.0.0.1
вместо поляlocalhost
имени хоста, это приводит к путанице в путях установки, что вызывает другие ошибки, но при указании localhost не удается подключиться к базе данных! Чем вызвана эта ситуация? Почему у меня это есть?socket = /var/run/mysqld/mysqld.sock
вmy.cnf
и файл существующего, принадлежащий MySQL с правами 777. Спасибо.127.0.0.1
это работает (но сценарий использует запись позже и терпит неудачу, потому что он ожидает разрешимое имя какlocalhost
), но если я используюlocalhost
, соединение, чтобы создать базу данных, терпит неудачу.Стоит отметить, что, если гранты верны, если вы используете MariaDB, произошла ошибка, которая привела к такому поведению в версиях 10.0.1 и 5.5.30 https://mariadb.atlassian.net/browse/MDEV-4356
источник
Вы можете проверить разрешение следующим образом:
Если это прослушивание 0 0.0.0.0:*, это означает, что каждый может получить доступ к этому mysql.
Вы можете отредактировать привязку для этого в файле my.conf. В Linux путь по умолчанию для этого:
Добавьте эти строки в файл my.conf, чтобы разрешить IP, который вы хотите.
источник
PHP все еще пытается использовать расположение сокетов по умолчанию. Эта проблема может возникнуть, если вы переместили папку MariaDB / MySQL из / var / lib / mysql в другое место. Чтобы решить эту проблему, вы должны определить местоположение нового сокета в файле /etc/php.ini .
источник
Я решил эту проблему, создав символическую ссылку
sudo ln -s /opt/lampp/var/mysql/mysql.sock /var/run/mysqld/mysqld.sock
. Но сначала я должен создать папку,/var/run/mysqld/
потому что папка изначально не существовала.источник
Вам нужен mysql.sock в / tmp
ln -s /var/lib/mysql/mysql.sock mysql.sock
должно работать нормально после этого.
источник