Перейти к содержимому

Mysql sock где находится

  • автор:

Форум русскоязычного сообщества 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

  • 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 создает временную таблицу в одном каталоге с исходной таблицей.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *