博客
关于我
公司mysql docker容器挂了,数据丢失,老板要起诉我。。
阅读量:362 次
发布时间:2019-03-04

本文共 1779 字,大约阅读时间需要 5 分钟。

场景

市民赵铁柱在A公司担任开发工程师,某日负责维护的一个网站无法访问。经排查发现,问题出在docker的mysql容器挂了。赵铁柱不慌不忙,倒了杯咖啡,然后稳健地启动了mysql容器。然而,启动成功后测试访问,发现网站数据全没了。让我们为赵铁柱默哀三秒钟。

分析原因

赵铁柱的错误在于没有进行数据持久化。为了偷懒,他没有将mysql容器的数据挂载到宿主机上,导致数据丢失。

解决方案

解决这个问题,需要采取以下步骤:

结论

将数据从容器中挂载到宿主机上,这样即使容器停止或重新启动,数据也不会丢失。

创建配置文件

1. 创建配置文件存放位置和数据映射位置: ```bash mkdir -p /mysql/config /mysql/data ``` 2. 创建并编辑配置文件: ```bash vi /mysql/config/my.conf ``` 配置文件内容如下: ```bash [mysqld]user=mysqlcharacter-set-server=utf8default_authentication_plugin=mysql_native_password[client]default-character-set=utf8[mysql]default-character-set=utf8 ```

启动容器

1. 停止已运行的mysql容器: ```bash docker ps docker stop mysql57 ```2. 启动新的mysql容器: ```bash docker run -d -p 3306:3306 --restart always --privileged=true --name dream_mysql57 -e MYSQL_ROOT_PASSWORD=root -v /mysql/config/my.conf:/etc/my.cof -v=/mysql/data:/var/lib/mysql mysql:5.7 ``` 说明: - `-d`:后台运行容器 - `-p 3306:3306`:映射3306端口 - `--restart always`:开机启动 - `--privileged=true`:提升容器权限 - `--name dream_mysql57`:容器名称 - `-e MYSQL_ROOT_PASSWORD=root`:设置根密码 - `-v /mysql/config/my.conf:/etc/my.cof`:配置文件映射 - `-v=/mysql/data:/var/lib/mysql`:数据目录映射 - `mysql:5.7`:镜像名称和版本

测试连接

确认mysql服务已正常运行,访问数据库验证数据是否恢复。

验证数据持久化

为了确保数据安全,可以采取以下步骤: 1. 创建数据库,创建表,插入数据: ```sql DROP TABLE IF EXISTS `test_table`; CREATE TABLE `test_table` ( `uuid` varchar(32) NOT NULL, `test_name` varchar(32) NOT NULL COMMENT '姓名', PRIMARY KEY (`uuid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ``` 执行SQL脚本后,插入测试数据: ```sql INSERT INTO `test_table` VALUES ('aaaa', '测试数据'); ```2. 关闭当前mysql容器: ```bash docker stop dream_mysql57 ```3. 启动新的mysql容器: ```bash docker run -d -p 3307:3306 --restart always --privileged=true --name dream_mysql57_3307 -e MYSQL_ROOT_PASSWORD=root -v /mysql/config/my.conf:/etc/my.cof -v=/mysql/data:/var/lib/mysql mysql:5.7 ```4. 访问3307服务,确认数据仍在。

转载地址:http://qrbg.baihongyu.com/

你可能感兴趣的文章
opencv源码查看
查看>>
OpenCV点目标检测未找到所有目标,并且找到的圆圈偏移
查看>>
opencv特征提取1-Harris角点检测
查看>>
OpenCV环境搭建(一)
查看>>
OpenCV的视频读取
查看>>
openCV目标识别 目标跟踪 YOLO5深度学习 Python 计算机视觉 计算机毕业设计 源码下载
查看>>
opencv笔记(1):图像缩放
查看>>
opencv笔记(二十四)——得到轮廓之后找到凸包convex hull
查看>>
OpenCV计算点到直线的距离 数学法
查看>>
Opencv识别图中人脸
查看>>
OpenCV读写avi、mpeg文件
查看>>
opencv里用calcCovarMatrix计算协方差矩阵
查看>>
OpenCV错误:在setSize中断言失败(s&>;=0)-尝试将图像放置在网络摄像头提要上时
查看>>
opencv面向对象设计初探
查看>>
OpenCV(1)读写图像
查看>>
OpenCV:不规则形状区域中每种颜色的像素数?
查看>>
OpenCV:概念、历史、应用场景示例、核心模块、安装配置
查看>>
OpenDaylight融合OpenStack架构分析
查看>>
OpenERP ORM 对象方法列表
查看>>
openEuler Summit 2022 成功举行,开启全场景创新新时代
查看>>