上篇文章写道,我腾讯云被攻击了,然后我各种删除木马文件,但在这个过程中,有些系统文件没认到,以为是木马文件,就删除了,各种处理无果,打开腾讯云的救援模式,备份了些重要文件,然后重装系统了。
基于这个契机,有些老掉牙的架构,我也想趁机换一换了。
首先是想,原来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目录备份,可以使用该方法进行数据库还原,操作前多做好备份,三思而动哈。