Задание для mysqld.service failed См. "Статус systemctl mysqld.service"
Консоль говорит
[[email protected] mysql]# service mysqld start
Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
mysqld.service
[[email protected] mysql]# systemctl status mysqld.service
● mysqld.service - SYSV: MySQL database server.
Loaded: loaded (/etc/rc.d/init.d/mysqld)
Active: failed (Result: exit-code) since Sat 2017-02-18 20:59:17 IST; 36s ago
Docs: man:systemd-sysv-generator(8)
Process: 9925 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)
Feb 18 20:59:16 ip-172-31-18-2.ap-southeast-1.compute.internal systemd[1]: Starting SYSV: MySQL database server....
Feb 18 20:59:17 ip-172-31-18-2.ap-southeast-1.compute.internal mysqld[9925]: MySQL Daemon failed to start.
Feb 18 20:59:17 ip-172-31-18-2.ap-southeast-1.compute.internal mysqld[9925]: Starting mysqld: [FAILED]
Feb 18 20:59:17 ip-172-31-18-2.ap-southeast-1.compute.internal systemd[1]: mysqld.service: control process exited, code=exited status=1
Feb 18 20:59:17 ip-172-31-18-2.ap-southeast-1.compute.internal systemd[1]: Failed to start SYSV: MySQL database server..
Feb 18 20:59:17 ip-172-31-18-2.ap-southeast-1.compute.internal systemd[1]: Unit mysqld.service entered failed state.
Feb 18 20:59:17 ip-172-31-18-2.ap-southeast-1.compute.internal systemd[1]: mysqld.service failed.
То, что я пробовал до сих пор:
mysqld_safe --defaults-file=/etc/my.cf
chown -R mysql:mysql /var/lib/mysql
/etc/init.d/mysqld start
/etc/init.d/mysqld stop
systemctl restart systemd-logind
перезагрузка сервера
Еще не повезло.
Файл my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Ответы
Ответ 1
Я встретил эту проблему сегодня, и исправил ее ревом.
1, проверьте файл журнала /var/log/mysqld.log
tail -f /var/log/mysqld.log
2017-03-14T07:06:53.374603Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directory)
2017-03-14T07:06:53.374614Z 0 [ERROR] Can't start server: can't create PID file: No such file or directory
В журнале говорится, что нет файла или каталога /var/run/mysqld/mysqld.pid
2. Создайте каталог /var/run/mysqld
mkdir -p /var/run/mysqld/
3, Запустите mysqld снова и снова service mysqld start
, но все равно не пройдитесь, проверьте журнал еще раз /var/log/mysqld.log
2017-03-14T07:14:22.967667Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 13 - Permission denied)
2017-03-14T07:14:22.967678Z 0 [ERROR] Can't start server: can't create PID file: Permission denied
Он сказал, что в разрешении отказано.
4. Предоставьте разрешение mysql chown mysql.mysql/var/run/mysqld/
5, перезапустите mysqld
# service mysqld restart
Restarting mysqld (via systemctl): [ OK ]
Ответ 2
Это шаги, которые я предпринял, чтобы исправить это:
Создайте резервную копию файла my.cnf в файле /etc/mysql и удалите или переименуйте его
sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
Удалите папку /etc/mysql/mysql.conf.d/, используя
sudo rm -r /etc/mysql/mysql.conf.d/
Убедитесь, что у меня нет файла my.cnf где-то в другом месте (я сделал это в домашнем каталоге!) Или в /etc/alternatives/my.cnf use
sudo find / -name my.cnf
Теперь переустановите все
sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7
sudo apt install mysql-server
Если ваш syslog показывает ошибку, например "mysqld: Не удается прочитать dir из /etc/mysql/conf.d/", создайте символическую ссылку:
sudo ln -s /etc/mysql/mysql.conf.d /etc/mysql/conf.d
Затем служба должна быть в состоянии начать с sudo service mysql start.
Я надеюсь, что это сработает
Ответ 3
В моем конкретном случае ошибка появлялась из-за отсутствия /var/log/mysql
с пакетом mysql-server
5.7.21-1 в дистрибутиве Linux на основе Debian. Запустив strace
и sudo /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
(именно так на самом деле работает служба systemd
), стало очевидно, что проблема была в следующем:
2019-01-01T09:09:22.102568Z 0 [ERROR] Could not open file '/var/log/mysql/error.log' for error logging: No such file or directory
Я недавно удалил содержимое нескольких каталогов в /var/log
, поэтому это не было неожиданностью. Решением было создать каталог и сделать его владельцем mysql
, как в
$ sudo mkdir /var/log/mysql
$ sudo chown -R mysql:mysql /var/log/mysql
Сделав это, я счастливо вошел в систему через sudo mysql -u root
и приветствовал старое и знакомое приглашение mysql>
.
Ответ 4
У меня была та же ошибка, проблема была в том, что у меня больше не было места на диске.
чтобы проверить место, запустите это:
$ df -h
![disk space]()
Затем удалите некоторые файлы, которые вам не нужны.
После этой команды:
service mysql start
systemctl status mysql.service
mysql -u root -p
После входа с паролем root убедитесь, что служба mysql была активна
Ответ 5
Была такая же проблема. Решено, как указано ниже. Используйте команду:
sudo tail -f /var/log/messages|grep -i mysql
проверить, вызывает ли проблема политика SELinux. Если это так, сначала проверьте, включена ли политика SELinux, с помощью команды #sestatus
. Если он показывает включен, то отключите его. Отключить:
-
# vi/etc/sysconfig/selinux
- измените "SELINUX = принудительный" на "SELINUX = отключен"
- перезагрузите Linux
- проверьте с помощью
sestatus
и он должен показать "отключен"
Удалите и переустановите mysql. Это должно работать.