Форум русскоязычного сообщества Ubuntu
Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!
- Форум русскоязычного сообщества Ubuntu »
- Поддержка »
- Настройка системы »
- Серверы (Модераторы: Дмитрий Бо, www777) »
- Не могу запустить MySQL — нет соединения через сокет /var/run/mysqld/mysqld.sock
Страницы: [1] Вниз
Автор Тема: Не могу запустить MySQL — нет соединения через сокет /var/run/mysqld/mysqld.sock (Прочитано 9473 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Страницы: [1] Вверх
- Форум русскоязычного сообщества Ubuntu »
- Поддержка »
- Настройка системы »
- Серверы (Модераторы: Дмитрий Бо, www777) »
- Не могу запустить MySQL — нет соединения через сокет /var/run/mysqld/mysqld.sock
Страница сгенерирована за 0.046 секунд. Запросов: 25.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Где указывается сокет подключения для phpmyadmin?
У меня сокет mysql находиться по пути /var/lib/mysql/mysql.sock. Sql сервер запущен. Зайти в mysql я могу. Но phpmyadmin при установке почему то пытается соединиться с mysql на стандартном сокете /var/run/mysqld/mysqld.sock. Указывал в /etc/phpmyadmin/config.inc.php сокет, не помогает. Не могу понять куда копать, подскажите пожалуйста.
- Вопрос задан более трёх лет назад
- 875 просмотров
Комментировать
Решения вопроса 1
nessero @nessero Автор вопроса
решил проблему в /etc/phpmyadmin/config-db.php нужно было указать $dbserver = ‘127.0.0.1’ и в /etc/phpmyadmin/config.inc.php добавить строчку $cfg[‘Servers’][$i][‘socket’] = ‘/var/lib/mysql/mysql.sock’;
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- PHP
- +2 ещё
Как решить проблему с миграциями?
- 1 подписчик
- 10 минут назад
- 3 просмотра
Устранение ошибок сокетов в MySQL
Этот мануал является частью серии статей по устранению неполадок и диагностике MySQL. Здесь мы рассмотрим некоторые общие проблемы, с которыми сталкиваются многие пользователи MySQL, и предоставим рекомендации по устранению конкретных ошибок. Также здесь вы найдете ссылки на другие мануалы и официальную документацию по MySQL, которые могут быть полезны в некоторых случаях.
- Доступ к логам ошибок MySQL
- Устранение неполадок в запросах MySQL
- Управление удаленным доступом к MySQL
- Устранение сбоев в MySQL
- Восстановление поврежденных таблиц MySQL
MySQL управляет соединениями с сервером БД через сокет-файл, это специальный файл, который облегчает связь между различными процессами. Сокет-файл сервера MySQL называется mysqld.sock, в системах Ubuntu он обычно хранится в каталоге /var/run/mysqld/. Этот файл создается сервисом MySQL автоматически.
Иногда изменения в системе или в конфигурации MySQL приводят к тому, что MySQL не может прочитать сокет-файл. Из-за этого у вас могут быть проблемы с доступом к вашим базам данных. Наиболее распространенная ошибка сокета выглядит следующим образом:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
Она может возникнуть по нескольким причинам. Существует несколько путей ее устранения.
Одна из основных причин этой ошибки заключается в том, что сервис MySQL остановлен или не запустился с самого начала. А это означает, что сервис просто не смог создать сокет-файл. Чтобы выяснить, является ли это причиной возникновения ошибки в вашем случае, попробуйте запустить сервис через systemctl:
sudo systemctl start mysql
Затем попробуйте снова получить доступ к командной строке MySQL. Если вы все еще получаете ошибку сокета, проверьте расположение, где ваша установка MySQL ищет сокет-файл. Эта информация есть в файле mysqld.cnf:
sudo nano /etc/mysql/mysql.conf.d/mysql.cnf
Найдите параметр socket в разделе [mysqld]:
. . .
[mysqld] user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/ mysqld.sock
port = 3306
. . .
Закройте файл. Затем убедитесь, что файл mysqld.sock существует, запустив команду ls в каталоге, где MySQL ищет этот файл:
ls -a /var/run/mysqld/
Если файл существует в этом каталоге, вы увидите его в выводе команды:
. .. mysqld.pid mysqld.sock mysqld.sock.lock
Если же файл не существует, возможно, причина в том, что MySQL пытается его создать, но не имеет для этого соответствующих прав. Вы можете передать все права на файл пользователю и группе mysql:
sudo chown mysql:mysql /var/run/mysqld/
После этого убедитесь, что у пользователя mysql есть необходимые права на каталог. Привилегии 775 подойдут в большинстве случаев:
sudo chmod -R 755 /var/run/mysqld/
Перезапустите MySQL, чтобы снова попытаться создать сокет-файл.
sudo systemctl restart mysql
Затем попробуйте получить доступ к командной строке MySQL еще раз. Если вы все еще сталкиваетесь с ошибкой сокета, вероятно, в вашем экземпляре MySQL существует более глубокая проблема. В этом случае вы должны просмотреть лог ошибок и поискать там какие-либо подсказки.
Читайте также: Устранение неполадок в MySQL
Этот мануал является частью серии статей по устранению неполадок и диагностике MySQL. Здесь мы рассмотрим некоторые общие проблемы, с которыми сталкиваются многие пользователи MySQL, и предоставим рекомендации по устранению конкретных ошибок. Также здесь вы найдете ссылки на другие мануалы и официальную документацию по MySQL, которые могут быть полезны в некоторых случаях.
- Доступ к логам ошибок MySQL
- Устранение неполадок в запросах MySQL
- Управление удаленным доступом к MySQL
- Устранение сбоев в MySQL
- Восстановление поврежденных таблиц MySQL
MySQL управляет соединениями с сервером БД через сокет-файл, это специальный файл, который облегчает связь между различными процессами. Сокет-файл сервера MySQL называется mysqld.sock, в системах Ubuntu он обычно хранится в каталоге /var/run/mysqld/. Этот файл создается сервисом MySQL автоматически.
Иногда изменения в системе или в конфигурации MySQL приводят к тому, что MySQL не может прочитать сокет-файл. Из-за этого у вас могут быть проблемы с доступом к вашим базам данных. Наиболее распространенная ошибка сокета выглядит следующим образом:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
Она может возникнуть по нескольким причинам. Существует несколько путей ее устранения.
Одна из основных причин этой ошибки заключается в том, что сервис MySQL остановлен или не запустился с самого начала. А это означает, что сервис просто не смог создать сокет-файл. Чтобы выяснить, является ли это причиной возникновения ошибки в вашем случае, попробуйте запустить сервис через systemctl:
sudo systemctl start mysql
Затем попробуйте снова получить доступ к командной строке MySQL. Если вы все еще получаете ошибку сокета, проверьте расположение, где ваша установка MySQL ищет сокет-файл. Эта информация есть в файле mysqld.cnf:
sudo nano /etc/mysql/mysql.conf.d/mysql.cnf
Найдите параметр socket в разделе [mysqld]:
. . .
[mysqld] user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
. . .
Закройте файл. Затем убедитесь, что файл mysqld.sock существует, запустив команду ls в каталоге, где MySQL ищет этот файл:
ls -a /var/run/mysqld/
Если файл существует в этом каталоге, вы увидите его в выводе команды:
. .. mysqld.pid mysqld.sock mysqld.sock.lock
Если же файл не существует, возможно, причина в том, что MySQL пытается его создать, но не имеет для этого соответствующих прав. Вы можете передать все права на файл пользователю и группе mysql:
sudo chown mysql:mysql /var/run/mysqld/
После этого убедитесь, что у пользователя mysql есть необходимые права на каталог. Привилегии 775 подойдут в большинстве случаев:
sudo chmod -R 755 /var/run/mysqld/
Перезапустите MySQL, чтобы снова попытаться создать сокет-файл.
sudo systemctl restart mysql
Затем попробуйте получить доступ к командной строке MySQL еще раз. Если вы все еще сталкиваетесь с ошибкой сокета, вероятно, в вашем экземпляре MySQL существует более глубокая проблема. В этом случае вы должны просмотреть лог ошибок и поискать там какие-либо подсказки.
Mysql sock где находится
Переменная окружения TMPDIR содержит полное имя каталога, в котором в MySQL хранит временные файлы. Если TMPDIR не установлена, то MySQL использует каталог, заданный в системе по умолчанию (обычно это `/tmp' или `/usr/tmp'). Если файловая система, в которой находится каталог временных файлов, слишком мала, то следует, отредактировав safe_mysqld , присвоить TMPDIR значение, указывающее на каталог в «более просторной» файловой системе! Временный каталог можно также задавать с помощью опции —tmpdir к mysqld .
Все временные файлы MySQL создает как скрытые; таким образом гарантируется, что временные файлы будут удалены, если mysqld умрет. Недостаток использования скрытых файлов в том, что не будут видны большие временные файлы, забирающие место в файловой системе, где расположен каталог временных файлов.
При сортировке ( ORDER BY или GROUP BY ) MySQL обычно использует один или два временных файла. Максимальный размер требующегося для этого пространства на диске составляет:
(размер сортируемых данных + sizeof(указатель базы данных)) * количество совпавших записей * 2
sizeof(указатель базы данных) обычно равен 4, но со временем для очень больших таблиц может увеличиться.
Для некоторых запросов SELECT MySQL также создает временные SQL-таблицы. Они не скрытые и имеют имена вида `SQL_*'.
ALTER TABLE создает временную таблицу в одном каталоге с исходной таблицей.