Daily Record

This is a non-commercial site, is a record of the life of a technology site

SEARCH


MySQL启动失败问题及解决过程

重要的事情

在MySQL崩溃时,第一件事情说就是备份,找到数据库安装的位置下面有个data文件夹直接进行tar包之后
在进行操作

问题背景

在尝试启动MySQL服务时,遇到了启动不成功的问题。通过查看MySQL的错误日志文件,发现了导致启动失败的具体原因,并成功解决了该问题。

错误日志分析

错误日志内容

2022-02-26T08:57:37.597100Z 0 [Warning] [MY-000081] [Server] option 'max_allowed_packet': unsigned value 107374182400 adjusted to 1073741824.2022-02-26T08:57:37.597178Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.  
2022-02-26T08:57:37.597266Z 0 [System] [MY-010116] [Server] /www/server/mysql/bin/mysqld (mysqld 8.0.24) starting as process 11150  
2022-02-26T08:57:37.634849Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.  
2022-02-26T08:57:37.881075Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.  2022-02-26T08:57:37.882114Z 1 [ERROR] [MY-013178] [Server] Execution of server-side SQL statement 'CREATE SCHEMA mysql DEFAULT COLLATE utf8mb4_general_ci' failed with error code = 1049, error message = 'System schema directory does not exist.'.  
2022-02-26T08:57:37.882402Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.  2022-02-26T08:57:37.882672Z 0 [ERROR] [MY-010119] [Server] Aborting  2022-02-26T08:57:38.403640Z 0 [System] [MY-010910] [Server] /www/server/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.24) Source distribution.

关键错误分析

  • 警告信息:关于 max_allowed_packet的警告和SQL模式的使用建议,虽然不影响启动,但应注意调整配置以避免潜在问题。
  • 错误Execution of server-side SQL statement 'CREATE SCHEMA mysql DEFAULT COLLATE utf8mb4_general_ci' failed with error code = 1049, error message = 'System schema directory does not exist.' 表明MySQL在尝试创建或访问系统数据库 mysql时遇到了问题,因为它找不到相应的目录。

解决方案

步骤概述

  1. 检查数据目录:确认MySQL的数据目录(通常是 /var/lib/mysql或自定义目录如 /www/server/mysql/data)下是否存在 mysql文件夹。
  2. 创建缺失的文件夹:如果 mysql文件夹不存在,则需要在数据目录下创建它。
  3. 设置权限:确保MySQL用户(如 mysql用户)对该文件夹有适当的读写权限。
  4. 创建必要文件:在 mysql文件夹内,可能需要创建一些特定的文件,如 db.opt,并配置适当的字符集和校对规则。

具体操作

  • /www/server/mysql/data目录下创建 mysql文件夹。
  • 设置文件夹权限,例如使用 chown -R mysql:mysql /www/server/mysql/data/mysql命令。
  • mysql文件夹内创建 db.opt文件,并添加内容:
default-character-set=utf8
default-collation=utf8\_general\_ci

然后就启动成功了!!!

总结一下吧:

碰到问题,一定要看错误日志,围绕着错误日志去解决就好了。

linux中所有的东西,都只是文件和文件夹

最近的文章

在Linux系统上安装JDK 1.8是Java开发的基础步骤之一。以下是一个详细的步骤指南,帮助您成功安装JDK 1.8。 1. 下载JDK 1.8安装包 首先,您需要从Oracle官网下载JDK 1.8的安装包。访问Oracle Java SE下载页面。请注意,下载可能需要您登录或注册Oracle…

继续阅读
更早的文章

Vue项目使用Nginx发布后刷新页面报404错误的解决方案 在使用Vue.js开发单页面应用(SPA)时,经常会遇到部署到Nginx服务器上后,直接访问非根路径页面或刷新页面时出现404错误的问题。这是因为Vue.js的SPA依赖于前端路由,而在服务器上没有相应的页面配置时,就会返回404错误。下…

继续阅读