Mysql和Redis修改密码
前言:学习项目用的是服务器上的数据库。使用的Docker安装的mysql。密码忘记修改了。结果被黑了......

1. 修改mysql连接权限及修改密码。
1.1 修改连接权限
允许哪些机器可以连接到该数据库。
在用Navicat配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远程连接引起的。

登录mysql root用户,修改表信息
如果使用的docker,需要先进入容器内
# 查看正在运行的容器
docker ps
#进入mysql容器bash控制台
docker exec -it mysql /bin/bash
# 登录mysql的root用户
mysql -uroot -p xxxxxx
查看当前用户信息
# 使用mysql数据库
use mysql;
# 从user表中查询root用户的host
select host from user where user='root';

将Host改为通配符%
- Host列指定了允许用户登录所使用的IP。
- user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。
- user=root Host=localhost,表示只能通过本机客户端去访问。
- %是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。
注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置
# 修改连接权限
update user set host = '%' where user ='root';
# 刷新权限
flush privileges;
此时,可通navicat登录。
1.2 修改mysql密码
若密码为初始密码root,且数据库暴露在外网中。黑客可通过脚本扫描登录该数据库。造成隐患。
进入容器,连接数据库
# 查看正在运行的容器
docker ps
#进入mysql容器bash控制台
docker exec -it mysql /bin/bash
# 登录mysql的root用户
mysql -uroot -p xxxxxx
修改密码,刷新权限
# 修改用户名为root,主机为%的账号密码
update mysql.user set authentication_string=password('xxxxxx') where user = 'root' and Host = '%';
# 刷新权限
flush privileges;
2.修改redis数据库密码
查看redis安装目录
whereis redis
# 安装目录
/usr/local/redis
指令配置文件启动redis-server
# 先进入到redis安装目录,然后指定配置文件启动redis-server
./redis-server /usr/local/redis/redis.conf
查看当前redis是否设置密码,Docker版
# 启动redis客户端
docker exec -it redis redis-cli
# 查看当前是否设置有密码
config get requirepass
# 当前设置有密码
(error) NOAUTH Authentication required.
修改redis密码
- 找到redis配置文件
# 设置密码
requirepass xxxxxx
在实际测试工作过程中,有时因为生产环境已有历史数据原因,需要测试环境数据id从某个值开始递增,此时,我们需要修改数据库中自增ID起始值,下面以MySQL为例:
# 自增字段需要是主键
alter table xxxxxx AUTO_INCREMENT=10000;

浙公网安备 33010602011771号