被删库勒索了,怎么使用docker进行MySQL容器的管理?

大家觉得写还可以,可以点赞、收藏、关注一下吧!
也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn


起因:云服务器MySQL密码设置的太简单了,导致到被入侵删库后被勒索比特币了,幸好只是一个练习项目,所以没什么影响。

以下数据库已被删除:keyauth。 我们有完整的备份。 要恢复它,您必须向我们的比特币地址bc1qeezukfupskw05my46rfucy3ffddd02dzq0wask支付0.015比特币(BTC)。 如果您需要证明,请通过以下电子邮件与我们联系。 duan00192@proton.me 。 任何与付款无关的邮件都将被忽略!

另外发现数据库的’root’@’%’这条记录被删除,导致远程连接不上

在这里插入图片描述

这个问题一般新数据库不会出现,但发生后也有解决方法:

mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'PASSWORD';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

但也引起了我对服务器端应用密码设置的重视

平常使用docker启动我的MySQL服务器,重建docker容器后,发现我设置的MYSQL_ROOT_PASSWORD不生效,重新启动后发现还是需要使用原密码才可以登录。 这就让我感到很奇怪了啊。MYSQL_ROOT_PASSWORD的不就是设置root账户的默认登录密码的吗?

经过反复的测试,删除容器,重启启动,删除镜像重新拉取,最后都是没有效果。 然后我想看看我的数据库文件存放的位置,发现了一个小问题。

因为数据库文件是放在宿主机的,映射到容器内部。导致每次容器启动的时候,会去判断数据库文件是否被初始化。 我发现,如果文件被初始化后,就不会去执行MYSQL_ROOT_PASSWORD设置的密码。

删除宿主机文件,重启容器后发现

mysql | 2021-04-12 17:08:31+08:00 [Note] [Entrypoint]: Initializing database files

在容器启动过程中,我发现了初始化数据库文件的执行记录,容器启动后,我发现密码确实是我设置的MYSQL_ROOT_PASSWORD的密码。

最后,附上自己的MySQL启动脚本

mkdir ~/mysql
cd ~/mysql

docker run -id \
-p 3306:3306 \
--name=mysql \
--restart always \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=yourmysqlpassword \
mysql:8.0 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \
--default-time_zone='+8:00'

docker exec –it c_mysql /bin/bash

2023年1月27日更

大家觉得写还可以,可以点赞、收藏、关注一下吧!
也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值