docker 创建mysql5.7 并开启bin_log和general_log日志审计功能

server/2025/3/29 5:02:17/

一、docker部署MySQL

1、本地镜像部署

(1)镜像地址:

链接:https://pan.baidu.com/s/1LAUoc8EGjHgrKELAdpkGbA?pwd=smy6 
提取码:smy6

(2)部署本地镜像

将下好的镜像放到对应的目录下面,下面的代码要路径也要根据自己的情况改。

docker load -i /home/mysql_5.7.44_images.tar

(3)创建MySQL镜像

docker run -d \
  --name pxh-mysql \
  -p 3306:3306 \
  --log-opt max-size=5m \
  --log-opt max-file=50 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v /home/mysql/data:/var/lib/mysql \
  -v /home/mysql/conf:/etc/mysql/conf.d \
  -v /home/mysql/init:/docker-entrypoint-initdb.d \
  -v /home/mysql/log:/var/log/mysql \
  --network pxh \
  mysql:5.7.44 docker-entrypoint.sh mysqld 

 2、直接拉取容器+部署镜像

docker run -d \
  --name pxh-mysql \
  -p 3306:3306 \
  --log-opt max-size=5m \
  --log-opt max-file=50 \
  -e TZ=Asia/Shanghai \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -v /home/mysql/data:/var/lib/mysql \
  -v /home/mysql/conf:/etc/mysql/conf.d \
  -v /home/mysql/init:/docker-entrypoint-initdb.d \
  -v /home/mysql/log:/var/log/mysql \
  --network pxh \
  mysql:5.7.44

3、字段说明

(1)这里  “-v /home/mysql/log:/var/log/mysql \” 是我们后面开启日志的时候存放日志的地址,映射出来方便对日志进行独立管理

(2)  "-e MYSQL_ROOT_PASSWORD=123456 \ "密码一开始设置简单一点,后面在对密码进行修改,如果创建容器就设置复杂的密码会创建失败(实测!避坑!)

4、修改密码

docker exec -it pxh-mysql bash
mysql -u root -p123456
use mysql
update user set authentication_string=password("新密码") where user="root"; 
flush privileges;

二、开启日志审计功能

1、找到刚才映射的配置地址

【  -v /home/mysql/conf:/etc/mysql/conf.d \】

cd /home/mysql/conf

2、创建一个文件 xxx.cnf

3、文件中写入以下内容

[mysqld]
# binlog日志
#设置日志三种格式:STATEMENT、ROW、MIXED 。
binlog_format = mixed
#设置日志路径,注意路经需要mysql用户有权限写,这里可以写绝对路径,也可以直接写mysql-bin(后者默认就是在/var/lib/mysql目录下)
log-bin =/var/log/mysql/mysql-bin.log
#设置binlog清理时间
expire_logs_days = 180
#binlog每个日志文件大小
max_binlog_size = 10m
#binlog缓存大小
binlog_cache_size = 4m
#最大binlog缓存大小
max_binlog_cache_size = 512m
#配置serverid
server-id=1

# general_log日志
general_log = 1
#保存位置
general_log_file = /var/log/mysql/general.log 

4、最后重启mysql容器就可以了!

你就会看到你的日志文件夹里面多出这几个文件!

5、可能会出现的问题

(1)如果配置文件后重启失败

这里可能是你配置的文件存放路径在容器里面没有,注意是容器内路径没有!不要在你的外面的文件目录创建路径,是没有用的!

这里你可以修改一下配置文件里面的路径,如果需要不想重新创建MySQL容器,可以改成和data路径一样就行。

(2)更新中...


http://www.ppmy.cn/server/178844.html

相关文章

构建在线工具来测量 PDF

在线处理 PDF 文件时,能够直接在浏览器中测量尺寸和内容可以显著提高工作效率。 本指南将引导您完成使用 ComPDFKit 的 Web SDK构建在线 PDF 测量工具的简单过程。 先决条件 首先,您需要访问我们的“Web SDK 指南”页面来检查您是否满足这些要求&#x…

网络华为HCIA+HCIP IPv6

目录 IPv4现状 IPv6基本报头 IPv6扩展报头 IPv6地址 IPv6地址缩写规范 ​编辑 IPv6地址分配 IPv6单播地址分配 IPv6单播地址接口标识 IPv6常见单播地址 - GUA (2 / 3 开头) IPv6常见单播地址 - ULA IPv6常见单播地址 - LLA IPv6组播地…

QT Quick(C++)跨平台应用程序项目实战教程 3 — 项目基本设置(窗体尺寸、中文标题、窗体图标、可执行程序图标)

目录 1. 修改程序界面尺寸和标题 2. 窗体图标 3. 修改可执行程序图标 上一章创建好了一个初始Qt Quick项目。本章介绍基本的项目修改方法。 1. 修改程序界面尺寸和标题 修改Main.qml文件,将程序宽度设置为1200,程序高度设置为800。同时修改程序标题…

通过Typora + PicGo + 阿里云对象存储(OSS)实现图床

文章目录 通过Typora PicGo 阿里云对象存储(OSS)实现图床1 准备工作1.1 阿里云对象存储 OSS配置创建oss存储空间bucket获取AccessKey 1.2 PicGo配置1.3 Typora配置 2 使用流程3 常见问题和解决3.1 创建asesskey3.2 You have no right to access this o…

Leetcode——28. 找出字符串中第一个匹配项的下标

题解一 思路 双层循环暴力解,只要needle的第一位和haystack的某一位对应,就进入内循环,如果超限或者某一位不同,跳出内循环,继续寻找下一个和needle第一位匹配的字符。 代码 class Solution {public int strStr(St…

块与块参照的一些知识——CAD c#二次开发

块(Block Definition)和块参照(Block Reference)是两个重要的概念,它们既有区别又相互联系,以下是详细介绍: 区别 1. 定义和本质 块(Block Definition):它…

Thinkphp指纹识别

识别ThinkPHP框架(指纹) 1.ioc判断 /favicon.ico 2.报错 /1 然后使用工具梭哈

PyCharm如何添加已有的conda环境

1、点击文件中的设置 2、在右侧选中项目下的Python解释器 3、在右侧解释器一栏找到添加解释器选项 4、选择本地解释器 5、填写信息 环境:选择现有 类型:conda conda路径:...\Anaconda\Scripts\conda.exe 环境(python路径&…