记录一次 在linux 搭建的mysql迁移到docker容器中

上篇文章写道,我腾讯云被攻击了,然后我各种删除木马文件,但在这个过程中,有些系统文件没认到,以为是木马文件,就删除了,各种处理无果,打开腾讯云的救援模式,备份了些重要文件,然后重装系统了。

基于这个契机,有些老掉牙的架构,我也想趁机换一换了。

首先是想,原来mysql是用linux部署的,现在我想直接部署到docker容器中。

然后我就开始了,因为是重装了系统什么也没有。

首先还是先装docker.

CentOS安装Docker

CentOS安装Docker - 乐心湖's Blog | 技术小白的技术博客

Ubuntu的docker详细安装教程

Ubuntu的docker详细安装教程_夏夏不吃糖的博客-CSDN博客_ubuntu安装docker教程

我是centos,就用上面那个文档,一步一步操作。

docker安装完毕后,拉取一个mysql镜像

#拉取镜像

docker pull mariadb:latest

启动容器,挂载一个mysql的data目录出去

docker run  -p 23306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-e TZ=Asia/Shanghai \
--name simple_mysql \
-v /root/data/mysql/data:/var/lib/mysql:rw  \
-v /root/data/mysql/log:/var/log/mysql:rw  \
--restart=always \
-d mariadb

把原来的mysql下面的data数据拷贝到 /root/data/mysql/data下(刚刚挂载的数据目录是这个)

拷贝1:ibdata1,不要问我这是什么,这个一定要拷贝。替换前先做备份

 拷贝2:需要移植的数据库,我就以travel_system这个库为例。

cp -R /data/txyun_beifen/mysql/data/travel_system /root/data/mysql/data

拷贝过来,ll命令查看一下,可以看到一件事,那就是该目录的所有者和所属组都是root,而docker的默认的用户是polkitd,用户组是input,这个要改。

 修改文件的所有者与所属组

# 修改文件所有者

chown -R polkitd travel_system

# 修改文件所属组

chgrp -R input travel_system

好,我们来重启下容器,在用navicat连接看看情况。

docker restart simple_mysql 

总结:其实如果还能连接数据库,直接通过navicat的数据传输功能进行同步,是效率最高的,如果出现了我这样的情况,万一不能使用navicat,只有数据库data目录备份,可以使用该方法进行数据库还原,操作前多做好备份,三思而动哈。

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值