Ubuntu 11.04 - Не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (13) - PullRequest
8 голосов
/ 23 ноября 2011

Я гуглил уже 2 дня и изначально получил

'/var/run/mysqld/mysqld.sock' (2)

Я исправил это с помощью:

sudo touch /var/run/mysqld/mysqld.sock
sudo chown -R mysql /var/run/mysqld/

Теперь я получаю ошибку:

 '/var/run/mysqld/mysqld.sock' (13)

Итак, все имеет правильные разрешения и файл существует.Есть мысли?

[Редактировать]

Получилось, хотя я не уверен, как.Я сделал aa-logprof как root, ничего не изменилось, разозлился, а затем переустановил, он начал работать.

Ответы [ 4 ]

6 голосов
/ 06 сентября 2013

В моем случае при запуске mysqld_safe был создан новый mysqld.sock файл.

$ cd /etc/init.d/
$ mysqld_safe

Вы, вероятно, не получите ответ, но если перезапустите сеанс, mysqld.файл носка будет где-то.Найдите его с помощью

$ sudo find / -type s | grep mysqld.sock
5 голосов
/ 23 ноября 2011

Вы не можете (абсолютно не можете) заменить канал файловой системы /var/run/mysqld/mysql.sock обычным файлом. Вам необходимо использовать mkfifo(1) для создания pipe(7), который клиенты используют для связи с сервером mysql.

(13) вероятно также означает, что у вас есть отказано в разрешении ошибка возврата EACCES (которая обычно имеет десятичное значение 13 - да, я ' Я видел это много).

Если права доступа к файловой системе настроены правильно, возможно, вы получили отказ в доступе с помощью инструмента обязательного контроля доступа , такого как AppArmor , SELinux , TOMOYO или SMACK .

AppArmor предустановлен в системах Ubuntu по умолчанию и может отклонять доступ к каналу. Проверьте вывод /var/log/syslog, /var/log/audit/audit.log или dmesg(1) на наличие сообщений, которые выглядят примерно так:

type=AVC msg=audit(1320723925.179:45115): apparmor="DENIED"
operation="open" parent=1 profile="/usr/sbin/ntop"
name="/usr/share/ntop/html/PlotKit/excanvas.js" pid=1835 comm="ntop"
requested_mask="r" denied_mask="r" fsuid=122 ouid=0

(но вместо name=/var/run/mysqld/mysql.sock.)

Если у вас есть подобные сообщения об ошибках, запустите aa-logprof как root и ответьте на вопросы. Более подробную информацию о конфигурации AppArmor можно найти на справочной странице apparmor.d(5) или на некоторых различных вики-страницах .

0 голосов
/ 23 ноября 2011

Вы пытались удалить файл .lock и перезапустить mysqld?

0 голосов
/ 23 ноября 2011

Вы проверяли, что сервер mysql mysqld работает?Кроме того, проверьте журнал системных сообщений, чтобы убедиться, что он жалуется на что-либо.

...