mysql5.7.4配置密码复杂度开启日志

mysql配置密码复杂度

创建测试环境

docker run -d \
--name mysql57 \
-v mysql57:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-e MYSQL_DATABASE=kodbox \
-e MYSQL_USER=kodbox \
-e MYSQL_PASSWORD=1 \
-p 3306:3306 \
-p 33060:33060 \
mysql:5.7-debian
检查是否有插件:
# 找到插件文件
find / -name "validate_password.so"
方法1:登录mysql命令行配置
--  安装插件
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
-- 验证安装
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'validate_password';

-- 1. 查看当前配置
SHOW VARIABLES LIKE 'validate_password%';
-- 2.设置密码策略
-- 最少8位,必须包含数字、大、小写字母、特殊字符各一个、密码中不能包含用户名
-- 设置密码验证强度等级 (0=LOW, 1=MEDIUM, 2=STRONG)
SET GLOBAL validate_password_policy=MEDIUM;
-- 设置密码最小长度
SET GLOBAL validate_password_length=8;
-- 设置必须包含的数字个数
SET GLOBAL validate_password_number_count=1;
-- 设置必须包含的小写字母个数
SET GLOBAL validate_password_mixed_case_count=1;
-- 设置必须包含的特殊字符个数
SET GLOBAL validate_password_special_char_count=1;
-- 设置密码中不能包含用户名
SET GLOBAL validate_password_check_user_name=ON;
方法2:修改配置文件
# 编辑MySQL配置文件           /etc/mysql/my.cnf添加以下内容:

[mysqld]
plugin-load-add=validate_password.so
# 密码策略配置
validate_password_policy=MEDIUM
validate_password_length=8
validate_password_number_count=1
validate_password_mixed_case_count=1
validate_password_special_char_count=1
validate_password_check_user_name=ON

重启MySQL:
sudo systemctl restart mysql
docker restart mysql157

测试验证

docker exec -it mysql5.7.43 bash
tail -10 /var/log/mysql/error.log
ls -l /var/log/mysql/

mysql -u root -pCjxx-2023

-- 1. 查看当前配置
SHOW VARIABLES LIKE 'validate_password%';
-- 测试弱密码(应该失败)
CREATE USER 'test1'@'localhost' IDENTIFIED BY '123';
-- 测试符合要求的密码(应该成功)
CREATE USER 'test2'@'localhost' IDENTIFIED BY 'Pass@123';
image-20260115111800956

mysql数据库开启日志功能

数据库未开启安全审计功能,审计日志保存6个月以上mysql(129、134) MongoDB(129)数据库DBA运维工程师开启该功能;【历史上没接触过数据库的审计日志问题,是否有解决方法未知】

mysql配置文件添加以下行开启日志:

134:cd /data/mysql5.7.42/conf
129:cd /home/data/taiyuan/mysql5.7.42/conf
cat >> config-file.cnf << 'EOF'

server-id = 1

log_error = /var/log/mysql/error.log

slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-query.log
long_query_time = 2


log-bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 180

EOF


#进入容器中保存日志的目录
mkdir -p /var/log/mysql

# 查看容器日志
docker logs mysql5.7.43
# 进入容器检查
docker exec -it mysql5.7.43 bash
# 在容器内检查配置
134:tyyypt-mysql
139:tyjgjf-mysql
mysql -uroot -p -e "SHOW VARIABLES LIKE 'server_id';"
mysql -uroot -p -e "SHOW VARIABLES LIKE 'log_bin';"
mysql -uroot -p -e "SHOW VARIABLES LIKE 'slow_query_log';"

# 检查日志文件是否生成
ls -la /var/log/mysql/
image-20260114151801135

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部