Вопрос или проблема
У меня проблемы с запуском mysql
и mysqld
.
Вывод команды sudo service mysql start
– mysql : Неизвестная служба
Аналогично, вывод команды sudo service mysqld start
– ничего.
Когда я попробовал sudo service mysqld status
, он показывает остановлен
.
Я просмотрел /var/log/mysql.log
и нашел эту ошибку :
2015-10-20 08:00:54 23694 [Note] InnoDB: 128 сегментов отката активны.
2015-10-20 08:00:54 23694 [Note] InnoDB: Ожидание начала очистки
2015-10-20 08:00:54 23694 [Note] InnoDB: 5.6.21 запущен; номер последовательности журнала 1600607
2015-10-20 08:00:54 23694 [Note] Имя хоста сервера (bind-address): '*'; порт: 3306
2015-10-20 08:00:54 23694 [Note] IPv6 доступен.
2015-10-20 08:00:54 23694 [Note] - '::' разрешается в '::';
2015-10-20 08:00:54 23694 [Note] Сокет сервера создан на IP: '::'.
2015-10-20 08:00:54 23694 [ERROR] /usr/local/mysql/bin/mysqld: Невозможно создать/write в файл '/var/run/mysqld/mysqld.pid' (Errcode: 2 - Нет такого файла или директории)
2015-10-20 08:00:54 23694 [ERROR] Невозможно запустить сервер: нельзя создать PID файл: Нет такого файла или директории
151020 08:00:54 mysqld_safe mysqld из PID файла /var/run/mysqld/mysqld.pid завершился
На что я посмотрел в интернете и попробовал исправить эту проблему, которая, как говорили, связана с разрешениями. Я создал и исправил эту ошибку, которая /var/run/mysqld
для mysql.pid
и поменял владельца директории на mysql:mysql
.
Но проблема все еще сохраняется. Может кто-нибудь помочь мне с этим!
Спасибо
Прежде всего, добавление информации о версии Linux, которую вы используете, очень поможет в этом случае. Команда: “lsb_release -a” или проверка /etc/redhat-release и /etc/debian_version предоставит больше информации о рассматриваемой ОС.
Ошибка “Невозможно записать в файл” может быть связана с: разрешениями (ACL), если владельцы + режим файла для директории правильные: проверьте с помощью команды “stat /var/run/mysqld” (строка, начинающаяся с текста “Access:”).
Также проверьте, что диск и i-ноды не заполнены (с помощью df -H и df -iH).
Следовательно проверьте, чтобы лог-файл /var/log/syslog (debian/ubuntu) или /var/log/messages (системы семейства redhat) не содержал других ошибок или сообщений SELinux.
SELinux также может запрещать запись: проверьте, включен ли SELinux с помощью команды: “getenforce”.
Сообщения SELinux также могут появляться в /var/log/audit/audit.log, проверьте его на наличие сообщений об отказах: “grep denied /var/log/audit/audit.log”. Если это вызывает какие-либо ошибки, посмотрите видео https://youtu.be/cNoVgDqqJmM для быстрого урока по использованию SELinux (особенно audit2allow). Если вы видите отказы запросов, вы можете увидеть причину с помощью командной строки: “grep denied /var/log/audit/audit.log | audit2allow -w”.
Это объяснит все ошибки, сгенерированные SELinux, и, надеюсь, поможет вам решить проблему.
Ответ или решение
Анализ проблемы запуска MySQL: Ошибка "Can’t create PID file"
Описание проблемы:
Вы столкнулись с ошибкой при попытке запустить MySQL. В частности, вы получили сообщение об ошибке: [ERROR] Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directory)
. Это указывает на то, что сервер MySQL не может создать или записать файл PID, необходимый для его нормальной работы.
Причины и возможные решения
-
Отсутствие директории:
- Убедитесь, что директория
/var/run/mysqld
существует. Если её нет, вы можете создать её с помощью команды:sudo mkdir /var/run/mysqld
- Убедитесь, что директория
-
Права доступа:
- Даже если каталог существует, могут быть проблемы с правами доступа. Проверьте права доступа и владельца директории:
sudo chown mysql:mysql /var/run/mysqld sudo chmod 755 /var/run/mysqld
- Дополнительно, проверьте права с помощью команды:
stat /var/run/mysqld
- Даже если каталог существует, могут быть проблемы с правами доступа. Проверьте права доступа и владельца директории:
-
Проверка дискового пространства:
- Убедитесь, что на диске достаточно места и инодов, используя команды:
df -H df -iH
- Убедитесь, что на диске достаточно места и инодов, используя команды:
-
SELinux:
- Если ваша система использует SELinux, это может блокировать запись в директорию. Проверьте статус SELinux:
getenforce
- Если SELinux активирован, проверьте журнал на наличие сообщений об отказах (если такие есть):
grep denied /var/log/audit/audit.log
- Используйте
audit2allow
для анализа и устранения проблем с SELinux:grep denied /var/log/audit/audit.log | audit2allow -w
- Если ваша система использует SELinux, это может блокировать запись в директорию. Проверьте статус SELinux:
-
Логирование ошибок:
- Обратите внимание на другие файлы журналов, такие как
/var/log/syslog
для систем Debian/Ubuntu или/var/log/messages
для систем Red Hat. - Это может дать дополнительные подсказки о том, почему MySQL не запускается.
- Обратите внимание на другие файлы журналов, такие как
-
Проверка конфигурационного файла:
- Убедитесь, что в конфигурационном файле MySQL (обычно
my.cnf
илиmy.ini
) путь к файлу PID задан корректно. Проверьте строку с параметромpid-file
.
- Убедитесь, что в конфигурационном файле MySQL (обычно
-
Запуск MySQL вручную:
- Попробуйте запустить MySQL вручную, чтобы увидеть более подробные сообщения об ошибках:
sudo /usr/local/mysql/bin/mysqld --user=mysql --console
- Попробуйте запустить MySQL вручную, чтобы увидеть более подробные сообщения об ошибках:
Заключение
Следуя этим рекомендациям, вы сможете провести всестороннюю диагностику проблемы с запуском MySQL. Убедитесь, что каждая из предложенных проверок выполнена, так как неправильные права доступа или отсутствие необходимых директорий могут быть основными причинами проблемы. Если проблема не решается, рассмотрите возможность переустановки MySQL или обращения к поддержке для дальнейшей помощи.