琪小新

V1

2022/12/01阅读:28主题:山吹

记录MySQL一次MySQL部署遇到的小问题

记录MySQL一次MySQL部署遇到的小问题

本次是在欧拉发行版上按照MySQL,通过二进制包的方式进行安装,安装完成后写了systemd的服务,内容如下所示

[Unit]
Description=MySQL Server
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
Type=notify
TimeoutSec=0
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS 
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false

但是启动服务时诡异的事情发生了,服务启动不起来(这儿没有截图),第一时间看错误日志,但是压根没有日志产生,这时觉得是权限问题,检查后data目录属主是mysql,配置文件也没有问题。

难道是mysqld权限有问题,是没有执行权限?赶紧去看一下!结果额有执行权限。

-rwxr-xr-x ~

此时直接命令行启动

sudo /usr/local/mysqld --defaults-file=/etc/my.cnf --user=mysql

喔嚯,可以正常启动没有问题。

那就是systemd的问题,此时查看journal日志发现了一些端倪

░ mysqld.service 单元已结束停止操作。
12月 01 21:35:50 myqnode1 systemd[1]: Starting MySQL Server...
░░ Subject: mysqld.service 单元已开始启动
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ mysqld.service 单元已开始启动。
12月 01 21:35:50 myqnode1 systemd[2778]: mysqld.service: Failed to execute /usr/local/mysql/bin/mysqld: Permission denied
12月 01 21:35:50 myqnode1 systemd[2778]: mysqld.service: Failed at step EXEC spawning /usr/local/mysql/bin/mysqld: Permission denied
░░ Subject: 进程 /usr/local/mysql/bin/mysqld 无法执行
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ 进程 /usr/local/mysql/bin/mysqld 无法被执行并已失败。
░░ 
░░ 该进程返回的错误代码为 ERRNO。
12月 01 21:35:50 myqnode1 systemd[1]: mysqld.service: Main process exited, code=exited, status=203/EXEC
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ An ExecStart= process belonging to unit mysqld.service has exited.
░░ 
░░ The process' exit code is 'exited' and its exit status is 203.
12月 01 21:35:50 myqnode1 systemd[1]: mysqld.service: Failed with result '
exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ The unit mysqld.service has entered the '
failed' state with result 'exit-code'.
12月 01 21:35:50 myqnode1 systemd[1]: Failed to start MySQL Server.
░░ Subject: mysqld.service 单元已失败
░░ Defined-By: systemd

发现报mysqld权限有问题,但是命令行没问题,可以正常启动。这时就猜只有这个原因了,SELinux的策略问题,我们修改下mysql bin目录文件的安全上下文试试

chcon -R -t bin_t /usr/local/mysql/bin/ 

再试试systemd启动

sudo systemctl start mysqld

没有问题,成功启动。日常小case分享,或许哪天会遇到

分类:

后端

标签:

数据库

作者介绍

琪小新
V1

DBA