湖州网站设计公司非遗网站建设目的
湖州网站设计公司,非遗网站建设目的,酷网站欣赏,dedecms三合一网站源码之前我们进行MySQL8.4的部署#xff0c;可以参考历史文章 别再yum装MySQL了#xff01;教你大厂级部署法部署MySQL8.4#xff0c;实测无坑#xff0c;可无脑照抄 最后的部分我们使用服务的方式进行数据库的启停操作#xff0c;今天有小伙伴在部署的时候出现了诡异的…之前我们进行MySQL8.4的部署可以参考历史文章别再yum装MySQL了教你大厂级部署法部署MySQL8.4实测无坑可无脑照抄最后的部分我们使用服务的方式进行数据库的启停操作今天有小伙伴在部署的时候出现了诡异的一幕启动的时候一直没有返回据说已经试了2天了其他版本都正常当前这个集群一直异常一度怀疑是服务器问题不禁想起一位故人。再一查MySQL服务明明已经启动可以正常连接和使用但systemctl却报告启动超时。经过远程查看后发现了问题的根源。今天我们就来复现一下此问题也给其他小伙伴参考。一、 正常情况用我们之前部署的MySQL8.4举例部署的mysqld服务步骤如下1. 配置服务创建服务文件 /etc/systemd/system/mysqld.service添加如下内容[Unit]DescriptionMySQL ServerAfternetwork.targetAftersyslog.target[Service]UsermysqlGroupmysqlTypenotifyExecStart/usr/local/mysql8.4/bin/mysqld --defaults-file/data/mysql/mysql3306/etc/my.cnfTimeoutSec300Restarton-failureRestartPreventExitStatus1PrivateTmpfalse[Install]WantedBymulti-user.target2. 重载服务systemctl daemon-reloadsystemctl enable mysqld3. 启动数据库systemctl start mysqldsystemctl status mysqld启动数据库后数据库日志文件如下数据库也能正常登录二、 本次异常情况1. 异常现象前面的配置过程都一样启动服务时一直没返回启动结束直到达到超时时间上面脚本里可以看出配置的超时时间是TimeoutSec300,即300s然后报错[rootalidb ~]# systemctl start mysqldJob for mysqld.service failed because a timeout was exceeded. See systemctl status mysqld.service and journalctl -xe for details.查看服务状态显示starting[rootalidb ~]# systemctl status mysqld.service● mysqld.service - MySQL Server Loaded: loaded (/etc/systemd/system/mysqld.service; bad; vendor preset: disabled) Active: activating (start) since Mon 2026-02-02 20:08:12 CST; 4min 24s ago Main PID: 19413 (mysqld) CGroup: /system.slice/mysqld.service └─19413 /usr/local/mysql5.7/bin/mysqld --defaults-file/data/mysql/mysql3307/etc/my.cnfFeb 02 20:08:12 alidb systemd[1]: Starting MySQL Server...查看数据库进程数据库进程确实正常运行着。且可以正常访问日志也显示正常虽然看上去是不影响正常使用但是启动时一直等待的状态无法直接判断是否正常启动完毕了。2. 原因分析经过对比发现这位小伙伴用的是MySQL5.7原因是给原先的单节点的主库加从节点从数据库的日志可以看出MySQL8.4和MySQL5.7 有着细微差别即反馈的信号不太一样。因此针对MySQL5.7 的版本我做了一下调整调整后的服务配置如下[Unit]DescriptionMySQL ServerAfternetwork.targetAftersyslog.target [Service]UsermysqlGroupmysqlTypeforkingExecStart/usr/local/mysql5.7/bin/mysqld --defaults-file/data/mysql/mysql3307/etc/my.cnf --daemonizeTimeoutSec300Restarton-failureRestartPreventExitStatus1PrivateTmpfalse [Install]WantedBymulti-user.target这次秒回结果如下其中的关键调整点就如下2个Typeforking适配MySQL 5.7的工作模式--daemonize参数确保MySQL以守护进程模式运行如果更严谨一点可以考虑再加上PIDFile参数便于找到对应的进程号。三、 结语MySQL服务启动超时问题看似简单实则涉及systemd工作机制、MySQL版本特性等多方面知识。作为一名DBA理解这些底层原理至关重要。如果大家下次遇到类似问题不妨先检查MySQL版本与service配置的匹配性这可能会帮你节省大量排查时间。运维之道在于深入理解系统运作机制而非仅仅记忆解决方案。你是否在MySQL运维中遇到过其他有趣的问题欢迎在留言区分享你的经历和解决方案关注微信公众号「数据库干货铺」获取更多数据库运维干货。