docker启动MySQL容器失败原因排查记录

news2024/11/24 18:47:17

背景

最近在尝试容器搭建MySQL集群时碰到一个错误,启动MySQL时碰到一个,经过排查解决,在此做一个记录

问题过程

1、启动MySQL容器

$ sudo docker run -d -p 3306:3306 \
> --name mysql \
> -v /opt/mysql/log:/var/log/mysql \
> -v /opt/mysql/data:/var/lib/mysql \
> -v /opt/mysql/conf:/etc/mysql \
> -e MYSQL_ROOT_PASSWORD=root \
> mysql
3cf4012772cc2e22732aa6d5eb716d7b290a95da25b750d4a1189e77ab985f33
# 运行后,查看运行中的容器发现没有刚启动MySQL
[bing@centosone nginx]$ sudo docker ps
CONTAINER ID   IMAGE          COMMAND                   CREATED        STATUS        PORTS                                                                        NAMES
5c7b103435d1   nginx:latest   "/docker-entrypoint.…"   8 hours ago    Up 8 hours    0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:85->80/tcp, [::]:85->80/tcp   my-nginx
28cda42916c3   nginx:latest   "/docker-entrypoint.…"   15 hours ago   Up 15 hours   0.0.0.0:82->80/tcp, [::]:82->80/tcp                       
  • mysql/log: 存储MySQL日志
  • mysql/data: 是数据库文件(库表数据存放处)存放的地方。必须要挂载到容器外,否则容器重启一切数据消失。
  • mysql/conf: mysql配置,mysql启动时读取配置

查看所有容器docker ps -a:

发现MySQL是已经exit了

$ sudo docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS                      PORTS                                                                        NAMES
4e163949caa2   mysql          "docker-entrypoint.s…"   20 minutes ago   Exited (1) 17 minutes ago                                                                                mysql

然后尝试删除容器重启还是一样:

$ sudo docker rm 4e1
4e1
$ sudo docker run -p 3306:3306 
--name mysql 
-v /opt/mysql/log:/var/log/mysql 
-v /opt/mysql/data:/var/lib/mysql 
-v /opt/mysql/conf:/etc/mysql 
-e MYSQL_ROOT_PASSWORD=root 
-d mysql
b3153c7d9d33f28e9808fbd6f8feea44ac12e45f9aec637a789a29b9f7f5dcd2

# 仍然是exit状态
$ sudo docker ps -a
CONTAINER ID   IMAGE          COMMAND                   CREATED         STATUS                     PORTS                                                                        NAMES
b3153c7d9d33   mysql          "docker-entrypoint.s…"   3 seconds ago   Exited (1) 2 seconds ago                                                                                mysql

查看容器日志:

$ sudo docker logs --tail 100 --follow --timestamps mysql

在这里插入图片描述

问题原因:

如上图,查看日志发现是没有配置文件目录,我们的命令指定的配置文件路径是/etc/mysql/,而容器读取的配置文件路径是/etc/mysql/conf.d/。
在这一行-v /opt/mysql/conf:/etc/mysql,我们将主机路径/opt/mysql/conf挂载到容器路径/etc/mysql下,实际上容器配置在/etc/mysql/conf.d/目录下。

修改启动命令

修改启动命令中的配置文件路径,再次重新启动成功,如下:

sudo docker run -p 3306:3306 --name mysql \
-v /opt/mysql/log:/var/log/mysql \
-v /opt/mysql/data:/var/lib/mysql \
-v /opt/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql
ef8d15ff3c2828b718357ad7d41117ca46c3fec7bb6b3a365c886926b275fbb8

# 启动成功
sudo docker ps 
[sudo] bing 的密码:
CONTAINER ID   IMAGE          COMMAND                   CREATED          STATUS          PORTS                                                                        NAMES
ef8d15ff3c28   mysql          "docker-entrypoint.s…"   11 minutes ago   Up 11 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp              

mysql容器终于是 Up 状态了

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java项目之大型商场应急预案管理系统(源码+文档)

项目简介 大型商场应急预案管理系统实现了以下功能: 大型商场应急预案管理系统的主要使用者管理员功能有个人中心,员工管理,预案信息管理,预案类型管理,事件类型管理,预案类型统计管理,事件类…

【vue】03-指令补充+样式绑定+计算属性+侦听器

代码获取 知识总结 ⼀、指令补充 1.指令修饰符 1.1 什么是指令修饰符? 所谓指令修饰符就是让指令的 功能更强⼤,书写更便捷 1.2 分类 1.2.1 按键修饰符 keydown.enter:当enter键按下时触发 keyup.enter:当enter键抬起时触…

执行powershell脚本出错:未对文件进行数字签名

解决执行powershell脚本时出错:未对文件 \test.ps1进行数字签名。无法在当前系统上运行该脚本 前言 今天从github上下载了一个PowerShell脚本要在本地运行,运行的时候出现了未对文件进行数字签名的问题,然后在这里记录下怎么解决 解决方法…

选择2024年开发App的理由,费用分析与效益

App开发费用受复杂度、团队、地理位置、平台等因素影响。低代码平台如ZohoCreator提供经济高效开发方案,降低费用并提升灵活性。2024年,企业需考虑这些因素制定长期规划。 调查显示: 企业估算应用开发费用时,常采用以下公式&…

大厂面试真题-组合和聚合的区别是什么

组合和聚合比较类似,二者都表示整体和部分之间的关系。 聚合关系的特点是:整体由部分构成,但是整体和部分之间并不是强依赖的关系,而是弱依 赖的关系,也就是说,即使整体不存在了,部分仍然存在…

算法专题六: 模拟与分治快排

目录 模拟1. 替换所有的问号2. 提莫攻击3. Z字形变换4. 外观数列5. 数青蛙分治快排1. 颜色分类2. 排序数组3. 数组中的第K个最大元素4. 库存管理Ⅲ 模拟 1. 替换所有的问号 算法思路: 本题就是简单的模拟, 只需按照题目的思路遍历所有的字符, 如果为?则将其替换, 替换时寻找2…

今日指数项目day8实战权限管理器(上)

3.权限管理器 3.1 权限列表展示功能 1)原型效果 2)接口说明 功能描述: 查询所有权限集合 服务路径: /api/permissions 服务方法:Get 请求参数:无响应数据格式: {"code": 1,"data":…

Python自然语言处理之pyltp模块介绍、安装与常见操作案例

pyltp是哈尔滨工业大学社会计算与信息检索研究中心推出的一款基于Python封装的自然语言处理工具,它提供了哈工大LTP(Language Technology Platform)工具包的接口。LTP工具包以其强大的中文分词、词性标注、命名实体识别、依存句法分析等功能&…

Idea不能创建java8切换路径

顶部的Server URL改成https://start.aliyun.com/

Ubuntu配置应用开机自启动

有些自己下载的应用想要配置开机自启动,比如snipaste,steam等,可以通过一下步骤进行配置 点击应用展开图标 这个里面就是开机自启动的一些应用,可以将自己想要自启动的应用添加到这个里面来 以上是snipaste配置,起…

大数据治理:构建数据驱动的智能决策体系

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

RocketMq详解:三、RocketMq通用生产和消费方法改造

文章目录 1.背景2.通用方法改造2.1添加maven依赖2.2 RocketMq基础配置2.3 配置类2.5 消息传输的对象和结果2.4 消息生产者2.5 消息消费者2.6 功能测试 1.背景 在第二章:《RocketMq详解:二、SpringBoot集成RocketMq》中我们已经实现了消费基本生产和消费…

CISCN2022-cactus

这周在疯狂学kernel pwn。 记录一下这题,race conditonmsg_msgpipe_buffer,kaslrsmepsmapkpti。 漏洞很简单,所有操作都没加锁,就是race condition了。edit什么的都只能2次。 很明显了,一次泄露基址,一次劫…

unidbg console debugger 调试技巧

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 打开debug日志 编辑 unidbg-android/src/test/resources/log4j.properties 把 log4j.logger.com.github.unidbg.AbstractEmulator 改为 DEBUG 当运行报错时…

lenovo联想 ThinkPad E14 Gen 2,E15 Gen 2 AMD(20T6,20T7,20T8,20T9)原厂Win10系统镜像下载

适用机型:【20T6、20T7、20T8、20T9】 链接:https://pan.baidu.com/s/1AVTvmiIHjafsFw8P7_jMPg?pwdzux5 提取码:zux5 联想原装WIN系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office办公软件、联想电脑…

C#实现CRC32算法

CRC32 是一种校验和算法&#xff0c;用于检测消息是否未被修改。 它被广泛使用&#xff1a;例如&#xff0c;计算以太网发送包校验和。 public class CRC32 {private static readonly uint[] Crc32Table new uint[256];static CRC32(){uint i, j;uint crc;for (i 0; i < …

《深度学习》OpenCV 风格迁移、DNN模块 案例解析及实现

目录 一、风格迁移 1、什么是风格迁移 2、步骤 1&#xff09;训练 2&#xff09;迁移 二、DNN模块 1、什么是DNN模块 2、DNN模块特点 1&#xff09;轻量 2&#xff09;外部依赖性低 3&#xff09;方便 4&#xff09;集成 5&#xff09;通用性 3、流程图 4、图像…

软件设计之Redis(1)

软件设计之Redis(1) 路线图推荐&#xff1a; 【Java学习路线-极速版】【Java架构师技术图谱】 尚硅谷Redis零基础到进阶&#xff0c;最强redis7教程&#xff0c;阳哥亲自带练&#xff08;附redis面试题&#xff09; 资料可以去尚硅谷官网免费领取 学习内容&#xff1a; Redi…

Unity3D 观察者模式

Unity3D 泛型事件系统 观察者模式 观察者模式是一种行为设计模式&#xff0c;通过订阅机制&#xff0c;可以让对象触发事件时&#xff0c;通知多个其他对象。 在游戏逻辑中&#xff0c;UI 界面通常会监听一些事件&#xff0c;当数据层发生变化时&#xff0c;通过触发事件&am…