当前位置: 首页 > article >正文

MySQL 数据目录迁移导致启动失败

问题出现背景

在项目运行过程中,MySQL 数据库由于 磁盘空间不足,需要将数据目录从 /data/docker/volumes/mysql-master 迁移至 /mnt/docker/volumes/volumes/mysql-master。在修改 docker-compose.yml 配置并重新启动 MySQL 容器后,发现 MySQL 无法正常启动,且一致尝试重启,日志中反复出现如下错误:该错误导致 MySQL 无法正常初始化 InnoDB 存储引擎,进而无法启动数据库服务。

[ERROR] [MY-012263] [InnoDB] The Auto-extending innodb_system data file './ibdata1' is of a different size 640 pages (rounded down to MB) than specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!
[ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
[ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
[ERROR] [MY-010119] [Server] Aborting

原因

一般导致导致 MySQL 无法正常初始化 InnoDB 存储引擎的原因有三种:
(1)ibdata1 文件大小不匹配(与配置文件的大小)
(2)my.cnf 的 datadir 配置未修改(迁移文件导致的?)
(3)MySQL 数据目录权限

针对对一个原因:
查看my.cnf 中的配置,如下:
在这里插入图片描述
查看具体/data中的idb1文件大小:
在这里插入图片描述
所有可以排除第一个原因。

针对第二个原因:my.cnf 的 datadir 配置未修改(迁移文件导致的?)
发现不管改没改都不会影响,因为这里的配置指向的是与这两个目录无关的目录内。

针对第三个原因:

ls -lh /mnt/docker/volumes/volumes/mysql-master/data/ibdata1
输出结果如下:
-rwxrwxrwx 1 systemd-coredump root 10M Mar  7 09:17 /mnt/docker/volumes/volumes/mysql-master/data/ibdata1

发现其所有者不是 MySQL 用户,而是 systemd-coredump。由于 MySQL 运行的 UID/GID 为 999:999(mysql 用户),但 ibdata1 文件的所有者是 systemd-coredump,MySQL 可能无权限访问或修改该文件,导致 InnoDB 初始化失败。

此时修改对应的文件权限:

chown -R 999:999 /mnt/docker/volumes/volumes/mysql-master
chmod -R 755 /mnt/docker/volumes/volumes/mysql-master
然后重启mysql容器:
docker restart mysql-master
# 发现对应的容器不在重启!问题解决!!!
注:
在 Docker 容器内,MySQL 运行的用户是 999:999,但宿主机的 /mnt/docker/volumes/volumes/mysql-master/data 可能是 root:root。
Docker 不会自动调整挂载目录的权限,所以需要手动调整。

http://www.kler.cn/a/576183.html

相关文章:

  • 【前端基础】Day 10 CSS3-2D3D
  • VSCode SSH中删除指定IP的方法
  • MySQL : 数据库和表操作
  • LLM 学习(二 完结 Multi-Head Attention、Encoder、Decoder)
  • PDFelement Pro v11.4.8.3352 万兴PDF国际解锁版 下载
  • 大模型在垂直行业的落地实践:从通用到定制化的技术跃迁
  • 【GoTeams】-4:为项目引入etcd
  • 爬虫代理技术深度解析:从原理到实战应用
  • vue3,Element Plus中抽屉el-drawer的样式设置
  • Jenkins 自动打包java项目镜像部署到服务器
  • 【Manus】AI 代理人正式上岗-附Manus邀请码限时通道
  • 深度学习——Tensor
  • esp32的IDF开发学习-驱动ws2812B
  • NTIRE比赛:技术前沿、国内企业表现与计算机视觉未来展望
  • Qwen 模型与 LlamaFactory 结合训练详细步骤教程
  • e2studio开发RA4M2(15)----配置RTC时钟及显示时间
  • STM32G431RBT6--(3)片上外设及其关系
  • STM32_IIC外设工作流程
  • nature genetics | SCENT:单细胞多模态数据揭示组织特异性增强子基因图谱,并可识别致病等位基因
  • 监听-追溯