一、数据库未配置密码复杂度策略,未定期更换口令。
1、安装validate_password插件:
-
登录mysql,查询已安装的插件:show plugins;
-
查询mysql插件目录位置:show variables like “%plugin_dir%”;
找到对应的目录,mysql自带 validate_password,然后我们将这个插件进行安装
- 通过命令行安装(可以不用重启服务):install plugin validate_password soname ‘validate_password.dll’;
- 密码强度应设置为MEDIUM:set global validate_password_policy=1;
*设置口令有效期: SET GLOBAL default_password_lifetime = 180;
也可以为不同用户设置不同的有效期:ALTER USER ‘jeffrey’@‘localhost’ PASSWORD EXPIRE INTERVAL 90 DAY;
二、配置失败登陆处理功能以及超时自动退出功能
- 会话限制模块:install plugin connection_control soname ‘connection_control.dll’;
- 查看: show variables like ‘%connection_control%’;
- 根据需求设置锁定时间: set global connection_control_min_connection_delay=60000;
- 查看: show variables like ‘%connection_control%’;
- 设 置 数 据 库 参 数wait_timeout 的值
- set global interactive_timeout=10;
- set global wait_timeout=20;
所以的设置都可以在my.ini文件中修改(但是要重启mysql服务,所以不推荐,建议直接在运行状态下进行修改)比如:
三、数据库开启 SSL 协议
5.7的版本不支持
四、数据库开启binlog
- 在my.ini文件,[mysqld]下添加以下配置(需要重启服务,或者通过上面的形式直接运行态用命令行修改)
## 是 binlog 的名字前缀 可以在前面添加指定路径比如:D:\mysqlServer\mysql-5.7.27\Data\mysql-bin;不添加默认在Data文件夹下
log-bin=mysql-bin
## 0表示由计算机系统自行决定刷新binlog 的时间,也可以定义0-N的任意数字,表示多少个事务刷新
sync_binlog=1
# 更详细的模式(ROW 模式)记录更改
binlog-format=ROW
# 设置单个 binlog 文件的大小上限
max_binlog_size=512M
# 确保每个复制服务器都有唯一的 server-id
server-id=1
-
新建一张测试表进行binlog功能测试
-
找到目前的binary log存储位置
-
-
查看bin-log
此时代表binlog已经开启并且成功写入文件 -
对binlog定期进行恢复性测试
- 删除之前建好的数据库
- 进行恢复性测试(在Data目录下打开终端执行)(mysqlbinlog --start-datetime=“2024-01-17 13:22:25” --stop-datetime=“2024-01-17 13:55:18” mysql-bin.000002 | mysql -u root -p -P 3307)
- 删除之前建好的数据库