52 mysql 启动过程中常见的相关报错信息

2024-08-26 22:28

本文主要是介绍52 mysql 启动过程中常见的相关报错信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

我们这里主要是看一下 service mysql start, service mysql stop 的过程中的一些常见的错误问题

这些 也是之前经常碰到, 但是 每次都是 去搜索, 尝试 1, 2, 3, 4 去解决问题

但是 从来未曾思考过 这个问题到底是 怎么造成的

 

 

The server quit without updating PID file

这个在启动的时候, 主要造成的情况一般是 

“service mysql start” 启动 mysqld 服务, 然后 之后等待进程文件的创建 的过程中, mysqld 的进程挂掉了, 会输出 “The server quit without updating PID file”

这里, 我对脚本做了一定的调整, 原脚本是使用的 mysqld_save, 传入了 data_dir, 等等 

34b511fc058f1d97e44768f692a42cf6.png

 

“service mysql stop” 的时候, 发送 “kill $pid” 杀掉 mysqld 所在的进程, 然后 进入 wait_for_pid 的流程 

在 mysqld 清理掉 mysql.pid 文件之前, mysqld 所在的进程挂了之后, 会输出 “The server quit without updating PID file”

08813f72be36bdca3a394ab3c0f99484.png

 

然后 wait_for_pid 在 “service mysql start” 的过程中检测到了 mysqld 服务生成了 pid 文件, 立即跳出 

在 “service mysql stop” 的过程中检测到了 pid 文件的消失, 立即跳出, 等待 service_startup_timeout 秒, 这个默认值是 900s

然后下面的检测是 “test –n $pid” 表示上面执行 “$bindir/mysqld –defaults-file=/usr/local/mysql/my.cnf –user=root” 进程创建成功 

然后下面 “test kill -0 $pid” 的 else 表示 mysqld 的进程现在已经不存在了

1fa536c915ef733026b51f960ed6edf4.png

 

综上所述 

这个问题在 “service mysql start” 的过程中会出现的场景就是, 在 mysqld 进程创建了之后, 在 mysql.pid 文件创建之前, mysql 进程挂了 

这个问题在 “service mysql stop” 的过程中会出现的场景就是, 发送了 kill $pid之后, 在 mysqld 清理 mysql.pid 文件消失之前, mysql 进程挂了 

当然 可以看到的是, 这个错误提示 明显是在 “service mysql stop” 的场景中更加符合这里的提示的意义, 在 “service mysql start” 的场景, 更加倾向于是 “The server quit without creating PID file ”

 

复现一下问题, 我们这里主要是在 “service mysql start” 的过程中来复现这个问题 

需要构造这个问题, 我们稍微调整一下 脚本中构造 mysql_pid_path 的地方, 我们调整成为一个 不存在的 pid 文件 

这样, 在启动之后, wait_for_pid 的循环中会一直等待 mysql.pid 的生成, 然后 这时候 我们可以去构造问题

调整如下, 更新 mysql_pid_file_path 的默认值为一个 ubuntu1.pid, 这里我们 mysqld 进程创建好了之后, 创建的进程文件为 ubuntu.pid

3e72737cada22497833022344fefbcc0.png

 

在 wait_for_pid 的循环中, 每隔一秒会向 console 输出一个 “.”, 这里有几个点 就表示 wait_for_pid 已经等待了多少秒 

然后之后 我 kill 掉 mysqld 的进程, 这之后 wait_for_pid 中 “test kill -0 $pid” 检测到进程已经不存在了, 输出了 “The server quit without updating PID file”

736ee2c9dd14b84e031c80bcf80a4046.png

 

 

Couldn’t find MySQL server

这个主要是 mysql.server.sh 中的 指定的 mysql_safe 不存在 

e484d32bd9dbb02a594f73f5a25b762f.png

 

对应的处理是在这里, “test –x $bindir/mysqld_safe” 如果 mysqld_safe 不存在, 则直接输出 “Couldn’t find MySQL server”

7f4c5043bd87e953e48beb5b93ef112a.png 

 

MySQL server PID file could not be found 

这个主要是 “service mysql stop”, 但是 并没有 mysqld 的进程

并且没有 mysql.pid 文件[比如 mysqld 执行之后, kill -9 $pid 之后, mysql.pid 依然存在]

ff723cb3caa8b488826c985474b710f6.png

 

需要确保 mysql.pid 文件不存在, 即可构造这个问题 

a686ea20cdf518cf86f5ce5e421729c8.png 

 

Mysql server process is not running

这个情况是 mysql.pid 文件依然存在, 但是 mysql 进程不存在的情况 

构造的情况为, 启动 mysqld 进程, 让他创建 mysql.pid 文件, 然后 kill -9 $pid, 杀掉 mysqld 服务, 然后在执行 “service mysql stop”

或者 手动创建一个 mysql.pid 文件, 然后在执行 “service mysql stop”

e4201484270f15dbf5b961504681cbb2.png

 

需要确保 mysql.pid 文件存在, 并且 mysqld 进程不存在 即可构造这个问题

b471832366034e926937e3080aa4035a.png 

 

Failed to stop running server, so refusing to try to start  

确保 “service mysql stop” 失败, 即可复现这个问题 

1d0bae5b9fff5420ee80b6bfc614263f.png

 

 

MySQL PID file could not be found

确保执行 “service mysql reload”, “service mysql force-reload” 的时候, mysql.pid 文件不存在即可 

e89ddbbcb9435e9a0bf5a6258ebe7c0d.png

 

 

MySQL running/MySQL is not running/MySQL is running but PID file could not be found/MySQL is not running, but PID file exists 

主要是来自于 “service mysql status” 的检查状态的输出 

40b883265b9ef92271de96f4f3c79a10.png

 

 

 

 

 

这篇关于52 mysql 启动过程中常见的相关报错信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1109857

相关文章

MySQL 8 中的一个强大功能 JSON_TABLE示例详解

《MySQL8中的一个强大功能JSON_TABLE示例详解》JSON_TABLE是MySQL8中引入的一个强大功能,它允许用户将JSON数据转换为关系表格式,从而可以更方便地在SQL查询中处理J... 目录基本语法示例示例查询解释应用场景不适用场景1. ‌jsON 数据结构过于复杂或动态变化‌2. ‌性能要

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、

MySQL中比较运算符的具体使用

《MySQL中比较运算符的具体使用》本文介绍了SQL中常用的符号类型和非符号类型运算符,符号类型运算符包括等于(=)、安全等于(=)、不等于(/!=)、大小比较(,=,,=)等,感兴趣的可以了解一下... 目录符号类型运算符1. 等于运算符=2. 安全等于运算符<=>3. 不等于运算符<>或!=4. 小于运

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

MySQL逻辑删除与唯一索引冲突解决方案

《MySQL逻辑删除与唯一索引冲突解决方案》本文探讨MySQL逻辑删除与唯一索引冲突问题,提出四种解决方案:复合索引+时间戳、修改唯一字段、历史表、业务层校验,推荐方案1和方案3,适用于不同场景,感兴... 目录问题背景问题复现解决方案解决方案1.复合唯一索引 + 时间戳删除字段解决方案2:删除后修改唯一字

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

SpringBoot中六种批量更新Mysql的方式效率对比分析

《SpringBoot中六种批量更新Mysql的方式效率对比分析》文章比较了MySQL大数据量批量更新的多种方法,指出REPLACEINTO和ONDUPLICATEKEY效率最高但存在数据风险,MyB... 目录效率比较测试结构数据库初始化测试数据批量修改方案第一种 for第二种 case when第三种

解决1093 - You can‘t specify target table报错问题及原因分析

《解决1093-Youcan‘tspecifytargettable报错问题及原因分析》MySQL1093错误因UPDATE/DELETE语句的FROM子句直接引用目标表或嵌套子查询导致,... 目录报js错原因分析具体原因解决办法方法一:使用临时表方法二:使用JOIN方法三:使用EXISTS示例总结报错原