记录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分享,或许哪天会遇到
原文始发于微信公众号(小新数据库):MySQL Cases
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/207606.html