IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 记录一次数据库被黑,mysql,redis,mongodb各种修改密码修改端口添加白名单访问 -> 正文阅读

[大数据]记录一次数据库被黑,mysql,redis,mongodb各种修改密码修改端口添加白名单访问

前言


今天下午5点的时候正在开心的写BUG,突然请求不通了,,奇怪。。。
navicate链接数据库提示10061报错
嘶。。。。
百度百度。。。百度告诉我要改密码。。。?心想不妙。。。连了一会连不上,就尝试重启服务器了
重启完能用了,,,心里毛毛的,,回想一下好像好久没有备份数据库了。。就顺手备份了一波当前服务和另一个服务。。。

然后。。。7点正准备下班呢。前端@我。。一个服务挂了。。。

我擦?我看了一下说是表不存在。。奇怪。。我一点开卧槽。。就剩一张表了README
在这里插入图片描述
好巧不巧。刚才那个mysql卡住的时候我顺手备份了一波。。。。
。。
于时联系阿里云。。阿里云说没有异常登录报告。。。
其他博主的经历
应该是msql密码泄露了。。。于时查看了binlog发现没有打开。。。

show variables like 'log_bin';

先开启一波

find / -name my.cnf

在文件中加入

[mysqld]
log-bin=my-binlog-name

重启服务器,binlog生效;;


列个项目逐个完成:


修改服务器登录密码


修改服务器使用证书登录


修改mysql密码

修改教程
1.进入mysql

# root 代表用户名,各位视情况而定
mysql -u root -p

2.输入密码进入mysql(期间不会明文显示密码)
3.进入mysql数据库

use mysql;

查看账户情况

SELECT host,user,password FROM user

在这里插入图片描述
4.执行密码修改

# password里面是密码,外面的函数是对密码进行加密
UPDATE user SET password = PASSWORD('aAOsi90190184') WHERE user = 'root';

5.重启mysql或者刷新权限

另一种方法:mysqladmin -u root-p password '这里是密码'

补充:

如果忘记了密码

# 找到mysql配置文件
find / -name my.cnf
# 打开配置文件
nano /etc/my.cnf

在[mysqld]下增加如下内容

[mysqld]
skip-grant-tables

在这里插入图片描述

重要!重要!重要!改完密码以后记得把这个删掉,不然任意密码都能访问!

然后重启mysql就可以不需要密码访问了,任意密码都能连接成功;
然后就可以执行上面的步骤了

systemctl restart mysql.service

mysql8.0+修改密码

8.0以后无法使用update的方法修改密码,


修改mysql默认端口

查看当前端口

show global variables like 'port';

编辑 /etc/my.cnf文件。
新增 port=13306 参数,如下:
nano /etc/my.cnf

[mysqld]  
port=13306  

重启mysql以后端口就发生了改变

systemctl restart mysql

修改mysql远程登录白名单

mysql限制访问表的部分
在这里插入图片描述
其中的%就代表着可以任意访问,同理,如果你想任意位置都能远程访问,就把账户对应的host设置为%,这里我将会把他设置为公司的ip和我家里的ip(苦涩);
进入mysql

mysql -u root -p

输入密码:
在这里插入图片描述
使用表mysql

use mysq;

在这里插入图片描述
查询用户状态

SELECT host,user FROM user;

在这里插入图片描述
我们将%改为当前公司ip,一定要保留本地,以及其他服务的ip,不然其他服务无法访问;
在这里插入图片描述

UPDATE user SET host = '112.11.11.11' WHERE user = 'root' AND host = '%';

在这里插入图片描述
然后重启mysql就可以了

exit;
systemctl restart mysql.service

另一个博主的方法,我就不试了,大家有兴趣的可以自己看


准备数据库的自动备份


升级mysql到8.0启用新特性,防止暴力破解

防止字典爆破

云服务对端口进行IP限制


修改redis密码

docker-redis修改密码

由于使用的docker创建的临时容器,直接就设置了密码,于时以为里面也有配置文件就进去康康,结果发现docker启动的redis是默认没有配置文件的;

只能先去官网下载了;注意版本
Redis官网
在这里插入图片描述

趁着下载的这段时间,我们先把容器里的持久化文件取出来

docker exec -it redis /bin/bash
ls -l

在这里插入图片描述
确定了位置以及名称以后我们在我们准备好的位置创建文件夹,把文件拷贝出来

# 从容器向宿主机复制
docker cp redis:/data/dump.rdb ./
# 顺便提一下从宿主机向容器复制
docker cp /opt/test.js redis:/usr/local/tomcat/webapps/test/js

下载完以后我们把配置文件挪到我们统一管理docker配置文件的地方去;
想了想干脆在挪之前我们把文件在windows上配置一下吧,毕竟是主战场
主要是修改这几个地方

# 这里就不管接口了,反正都是要被docker映射的,内部使用啥都没问题
bind 127.0.0.1 #注释掉这部分,使redis可以外部访问
daemonize no #用守护线程的方式启动,默认是no
requirepass 你的密码#给redis设置密码
appendonly yes#redis持久化  默认是no
tcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是0

修改完成以后我们将配置文件上传到我们想要的地方,然后启动容器
我放在了/data/docekr-config/redis/data
启动命令

docker run -p 6397:6379 --name redis-new -v /data/docker/redis/conf/redis.conf:/etc/redis/redis.conf -v /data/docker/redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes

或者使用直接启动指定密码的方式启动

docker run -d --name redis-dev -p 16379:6379 -v /data/docker/redis/data:/data redis --requirepass "lB0+jA0asdasdasd"

参数解释:

-p 6397:6379:把容器内的6379端口映射到宿主机6397端口 # 宿主机:容器
-v /data/docekr-config/redis/conf:/etc/redis/redis.conf:把宿主机配置好的redis.conf放到容器内的这个位置中
-v /data/docekr-config/redis/data:/data:把redis持久化的数据在宿主机内显示,做数据备份
# 下面是另一个博主的配置启动命令不一样的地方
# redis-server /etc/redis/redis.conf:这个是关键配置,让redis不是无配置启动,而是按照这个redis.conf的配置启动
–appendonly yes:redis启动后数据持久化

关于启动参数,似乎和另一个博主的文章有一点不一样,我用它的启动不起来,不知道是不是版本的问题…点击进入博文

启动以后没有加载dump.rdb

在这里插入图片描述
关于加载配置另一个博主的解释
通过DockerFile的方式加载配置

编译安装的Redis修改密码

直接找到配置文件部分
在这里插入图片描述
直接修改重启即可,

本地的还需要额外修改端口

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-24 09:31:36  更:2022-04-24 09:33:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:30:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码