mysqld.service的作业失败请参阅"systemctl status mysqld.service"

Nob*_*obi 20 mysql amazon-web-services

控制台说

[root@ip-172-31-18-2 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.
Run Code Online (Sandbox Code Playgroud)

mysqld.service

[root@ip-172-31-18-2 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.
Run Code Online (Sandbox Code Playgroud)

我到现在为止尝试过的事情:

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
Run Code Online (Sandbox Code Playgroud)

重启服务器

仍然没有运气.

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
Run Code Online (Sandbox Code Playgroud)

Yem*_*tan 24

这非常有效。

/etc/init.d/mysql stop
service mysql stop
killall -KILL mysql mysqld_safe mysqld
/etc/init.d/mysql start
service mysql start
Run Code Online (Sandbox Code Playgroud)

  • 这是行不通的。failed!roo:~# /etc/init.d/mysql start root@thyroo:~# mysql (via systemctl): mysql.serviceJob for mysql.service 失败,因为控制进程退出并出现错误代码。有关详细信息,请参阅“systemctl status mysql.service”和“journalctl -xe”。 (7认同)
  • mysql.service 作业失败,因为控制进程退出并出现错误代码。 (3认同)
  • 这确实有帮助。谢谢 (3认同)

小智 14

这些是我为纠正此问题而采取的步骤:

备份 /etc/mysql 中的 my.cnf 文件并删除或重命名它

sudo mv /etc/mysql/my.cnf /etc/mysql/my.cnf.bak
Run Code Online (Sandbox Code Playgroud)

删除文件夹 /etc/mysql/mysql.conf.d/ 使用

sudo rm -r /etc/mysql/mysql.conf.d/
Run Code Online (Sandbox Code Playgroud)

验证您没有将 my.cnf 文件藏在其他地方(我在我的主目录中做过!)或在 /etc/alternatives/my.cnf 中使用

sudo find / -name my.cnf
Run Code Online (Sandbox Code Playgroud)

现在重新安装所有东西

sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7
sudo apt install mysql-server
Run Code Online (Sandbox Code Playgroud)

如果您的系统日志显示类似“mysqld:无法读取 '/etc/mysql/conf.d/' 的目录”的错误,请创建一个符号链接:

sudo ln -s /etc/mysql/mysql.conf.d /etc/mysql/conf.d
Run Code Online (Sandbox Code Playgroud)

那么服务应该可以用 sudo service mysql start 启动。

我希望它有效


jua*_*iza 14

我有同样的错误,问题是因为我不再有磁盘空间。检查空间运行这个:

$ df -h
Run Code Online (Sandbox Code Playgroud)

磁盘空间

然后删除一些你不需要的文件。

在此命令之后:

service mysql start
systemctl status mysql.service
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)

使用 root 密码输入后验证 mysql 服务是否处于活动状态

  • 这正是我的流浪机器所发生的情况,所以我提高了磁盘。 (2认同)

小智 8

我今天遇到了这个问题,并用咆哮的步骤修复它.

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
Run Code Online (Sandbox Code Playgroud)

日志说没有文件或目录 /var/run/mysqld/mysqld.pid

2,创建目录 /var/run/mysqld

mkdir -p /var/run/mysqld/
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

它表示许可否认.

4,授予mysql权限 chown mysql.mysql /var/run/mysqld/

5,重启mysqld

# service mysqld restart
Restarting mysqld (via systemctl):                         [  OK  ]
Run Code Online (Sandbox Code Playgroud)

  • 感谢您指出日志文件“sudo cat /var/log/mysqld.log”。在那里我找到了对我的个人问题(光盘配额)的清晰描述。 (2认同)

Ser*_*nyy 8

在我的特殊情况下,错误出现了,由于缺少/var/log/mysqlmysql-server基于Debian的Linux发行版包装5.7.21-1。运行stracesudo /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
Run Code Online (Sandbox Code Playgroud)

我最近删除了几个目录的内容,/var/log所以这并不奇怪。解决方案是创建目录并使其归mysql用户所有,如

$ sudo mkdir /var/log/mysql
$ sudo chown -R mysql:mysql /var/log/mysql
Run Code Online (Sandbox Code Playgroud)

完成后,我很高兴地通过以下方式登录sudo mysql -u root并看到了旧的和熟悉的mysql>提示

  • @SergiyKolodyazhnyy,你不明白上帝如何使用这个答案来使我今天免于双重尴尬。谢谢。我非常感激。 (2认同)

Bob*_*rip 7

如果您的问题没有解决,您可以尝试检查更多问题。

也许 mysql 崩溃了,像这样:

你可以登录查看

sudo cat /var/log/mysql/error.log

或者你检查

sudo ls /var/crash


小智 5

尝试

sudo chown mysql:mysql -R /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)

然后启动你的mysql服务

systemctl start mysqld
Run Code Online (Sandbox Code Playgroud)