首页 > 数据库 >mysql审计之general_log

mysql审计之general_log

时间:2023-12-11 21:32:13浏览次数:28  
标签:log general file mysql 日志 从库

一、概述

1、配置参数
#开启审计日志
general_log=on
#配置审计日志文件,mysql默认配置的是datadir目录下面,主机名.log的文件
general_log_file=/data/mysql/general_log
#配置日志输出到文件还是表,默认文件
log_output=file

2、优势
mysql自带,不需要额外安装插件
配置参数可以直接全局配置(set global),不需要重启数据库

3、弊端
只要用户执行了操作,无论对错,MySQL就会记录日志,这样的话日志量会非常庞大,对数据库效率有影响
无法控制记录SQL类型(连接、查询等),全量记录,而且还是明文记录,容易记录敏感信息

二、具体配置

1、日志写到文件

1、概述
当前使用的mysql版本为8.0.25,基于binlog的主从复制

2、配置参数
general_log=on
general_log_file=/data/mysql/general_log
log_output=file

3、试验记录
数据库启动general_log的信息会写入general_log
所有的操作都会记录,从库启动线程,主库也会记录连接信息
对于主从同步,从库会记录建库、建表等语句,对于数据增删改查只显示Begin、Commit,不显示具体SQL命令
当然默认的查询不会同步到从库,更改参数也不会同步到从库
如果手动删除general_log,即使重新touch创建也不会写入日志,可以set global general_log=off/on,重新启动general日志
所以使用脚本不能直接mv,可以cp复制完,cat /dev/null > general.log
日志记录的时间默认少8小时,可以配置set global log_timestamps=system解决,也可以采集的时候date -d 'sqltime' +%Y%m%d%H%M%S进行转换

2、日记写到table

1、配置参数
general_log=on
general_log_file=/data/mysql/general_log
log_output=table

2、试验记录
数据库启动general_log的信息会写入general_log
数据存储在mysql.general_log,这张表不会主从同步到从库
数据同步和file模式一下,主从同步账号是skip-grants user []@[],正常的是用户[用户]@主机名[IP]
直接查看表中命令全是加密的,使用-e也是密文,-e加重定向到文件,查看文件中内容是明文的
时间是正常的
数据无法被delete,但是可以truncate,注意主库truncate语句会同步到从库

3、关闭general_log

set global general_log=off
如果配置文件配置了,删掉就好

标签:log,general,file,mysql,日志,从库
From: https://blog.51cto.com/u_13236892/8777733

相关文章

  • 根据字段重复取第一条数据mysql
    根据字段重复取第一条数据MySQL在数据库操作中,经常会遇到需要根据某个字段的重复值来获取第一条数据的需求。这个需求在处理日志、统计数据等场景中非常常见。在MySQL中,我们可以使用GROUPBY和MIN函数来实现这个功能。首先,让我们来创建一个示例表,模拟一个订单表。每个订单有订单......
  • MySQL设置字符编码
    MySQL设置字符编码一、8.0设置字符集#vim/etc/mysql/my.cnf[mysqld]port=3306character-set-client-handshake=FALSEcharacter-set-server=utf8mb4collation-server=utf8mb4_unicode_ci#相对应的排序规则init_connect='SETNAMESut......
  • mysql安装及环境变量配置
    1.把下载的压缩包放到安装目录下后解压2.环境变量中path里添加mysql安装文件下bin目录的路径3.在mysql中bin的同级目录下新建my.ini配置文件4.编辑my.ini[mysqld]basedir=C:\mysql\mysql-5.7.19-winx64\datadir=C:\mysql\mysql-5.7.19-winx64\data\port=3306skip-grant-tables5.管......
  • CreateDialog 与 DialogBox
    DWORDWINAPIUploadThread(LPVOIDlpParam){HWNDhParentWnd=(HWND)lpParam;HWNDhDialog=CreateDialog(GetModuleHandle(NULL),MAKEINTRESOURCE(IDD_UPLOAD_DIALOG),hParentWnd,DialogProc);ShowWindow(hDialog,SW_SHOW);for(inti=0;i......
  • linux mysql libmysqlcppconn select,update mysql
    #include<chrono>#include<cstring>#include<ctime>#include<fstream>#include<iomanip>#include<iomanip>#include<iostream>#include<memory>#include<mutex>#include<queue>#include<......
  • mysql存json数据时的查询办法
    很多时候mysql的一列当中存的是json格式的数据,这时候如果要查询某个key对应的值的时候要如何查询呢,这里记录一种查询方法:json列的值:{“InventoryMainTypeCode”:1,“InventoryMainTypeName”:“GOOD”}现在要查询InventoryMainTypeCode为xxx或者InventoryMainTypeName为xxx的数......
  • 报错:Client does not support authentication protocol requested by server; consider
    IDEA启动项目登录时显示用户或密码错误或者连接mysql数据库时报错原因:mysql8之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password,所以可以需要改变mysql的加密规则打开cmd窗口,登录mysql;mysql-uroot-h127.0.0.1-P3306-p......
  • 瑞萨RZ/G2L核心板Linux Log目录文件详解
    为了排除系统问题,监控系统健康状况以及了解系统与应用程序的交互方式,我们需要了解各log文件的作用,以G2L中yocto文件系统为例,在系统/var/log/目录下会存放记录系统中各个部分的log文件作用如下:1. 文件详情下图为系统中 /var/log目录下的文件。图1.1目录下的文件Log文件作用......
  • General Purpose Input/Output (GPIO) 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/driver-api/gpio/index.html#general-purpose-input-output-gpio通用目的输入/输出(GPIO)简介GPIO接口什么是GPIO?常见的GPIO属性在Linux中使用GPIO线GPIO驱动程序接口GPIO的内部表示控制器驱动程序:gpio_chip提供IRQ的GPIO驱动程序......
  • MySQL中的日期函数
    1.查看日期/时间1.1查看当前的日期/时间(1)NOW():返回当前的日期时间;(2)CURDATE():返回当前的日期;(3)CURTIME():返回当前的时间;SELECTNOW(),CURDATE(),CURTIME();NOW()/CURDATE()/CURTIME()1.2提取指定的日期/时间成分(1)YEAR():提取年份;(2)MONTH():提取月份;(3)DAY():提取天(号/日);(4......