当使用systemctl start mysqld命令启动MySQL服务时,可能会遇到以下错误信息:
Failed to start mysqld.service: Unit not found.
这通常是因为mysqld服务没有正确的定义或配置在systemd上。解决此问题的方法如下:
- 检查mysqld.service的状态
在命令行中执行以下命令,检查mysqld.service的状态
systemctl status mysqld.service
如果mysqld.service被发现不存在,那么你需要手动添加mysqld.service来解决这个问题。否则你可以跳到下一步。
- 修改mysqld.service文件
如果mysqld.service存在,那么你需要检查该文件的内容,并修改以下项:
-
ExecStart:该项指定启动MySQL的命令。确保该路径是正确的,例如mysqld的安装路径在/usr/sbin/mysqld
-
PIDFile:该项指定哪个文件包含已启动MySQL服务的PID。默认情况下,这是/var/run/mysqld/mysqld.pid
以下是一些示例mysqld.service文件,你可以根据情况进行修改:
示例1:CentOS 7标准文件
[Unit]
Description=MySQL Server
After=syslog.target
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=oneshot
PIDFile=/var/run/mysqld/mysqld.pid
ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS
TimeoutSec=600
示例2:CentOS 7适用于Percona的文件
[Unit]
Description=Percona Server
After=syslog.target
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
Type=forking
User=mysql
Group=mysql
PIDFile=/var/run/mysqld/mysqld.pid
PermissionsStartOnly=true
ExecStartPre=/usr/bin/mkdir -p /var/run/mysqld
ExecStartPre=/usr/bin/chown -R mysql:mysql /var/run/mysqld/
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
ExecStartPost=/usr/sbin/mysqld-wait-ready $MAINPID
ExecStop=/usr/sbin/mysqladmin --defaults-file=/etc/my.cnf shutdown
TimeoutSec=300
[Install]
WantedBy=multi-user.target
修改完成mysqld.service文件后,使用以下命令重新加载systemd配置文件:
systemctl daemon-reload
然后尝试再次启动mysqld服务:
systemctl start mysqld.service
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mysql systemctl start mysqld报错的问题解决 - Python技术站