1、背景
测试环境,数据库未设置密码,被攻击。
攻击方式:
- 删除数据库
- 数据中README提示如何支付
1 您的数据库已删除。您必须支付 0.0175 比特币 (BTC) 才能取回它们。我拥有的备份:da_center_platform, datax-connect。通过 jiang4982@skiff.com 与我联系 只有与付款相关的邮件才会得到答复! bc1qq4qjr69esuzkh36rzpc78yyqkxuv66rsm5ku5m jiang4982@skiff.com
2、问题排除过程
1)发现数据库连接不上,查找连接不上原因:
- 错误的主机名或IP地址
- 错误的端口号
- 防火墙问题
- 网络问题
- MySQL服务器未启动
- 用户权限问题
- MySQL配置问题
2)分析:由于之前都是可以的,现在用navicat不能连接,docker中查看mysql服务是正常的。 防火墙端口号是正常的,后来想到有可能是用户问题。
3)排查用户问题:
- docker进入mysql
docker
exec -it mysql1 /bin/bash
- 登陆客户端
docker exec -it mysql1 /bin/bash
- 查看连接是否是%
SELECT user, host, authentication_string FROM mysql.user;
返回:
| user | host
| root | localhost
问题找到了:发现root账户的host是localhost,不支持其他连接
执行sql后问题解决:
update mysql.user set host='%' where user = 'root';
3、修改密码
修改密码需要注意连个地方:1)加密方式2)用户的host要写对
- 查看用户使用的是哪种加密方式
select user, plugin from mysql.user;
- 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '123456';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';