MySQL&&MariaDB打开sql日志功能

提示: my.ini文件在linux系统中为my.cnf

MariaDB中,找到安装目录的data文件夹下的my.ini文件,添加如下代码
general-log=1
general_log_file=C:/programs/MariaDB 10.0/log/sql.log

MySQL中, 找到安装目录下的my.ini文件 ,添加如下代码
general-log=1
general_log_file=C:/programs/MariaDB 10.0/log/sql.log
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL Server自带的事务日志可以通过第三方工具或者自己编写程序来监控表格的变化。以下是一种基于Java的监控方法: 1. 引入相关依赖 在Java项目中,我们需要引入以下两个依赖: ```xml <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> <version>8.2.2.jre8</version> </dependency> <dependency> <groupId>com.github.shyiko</groupId> <artifactId>mysql-binlog-connector-java</artifactId> <version>0.13.0</version> </dependency> ``` 其中,`mssql-jdbc` 是 SQL Server 的 JDBC 驱动,`mysql-binlog-connector-java` 是用来解析 MySQL binlog 的 Java 库,我们可以用它来解析 SQL Server 的事务日志。 2. 监控数据库变化 首先,我们需要连接到 SQL Server 数据库,并订阅事务日志的变化: ```java import com.github.shyiko.mysql.binlog.BinaryLogClient; import com.github.shyiko.mysql.binlog.event.EventData; import com.github.shyiko.mysql.binlog.event.EventHeaderV4; import com.github.shyiko.mysql.binlog.event.EventType; import com.microsoft.sqlserver.jdbc.SQLServerDriver; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Arrays; public class LogMonitor { private static final String JDBC_URL = "jdbc:sqlserver://localhost:1433;databaseName=mydb"; private static final String JDBC_USER = "myuser"; private static final String JDBC_PASSWORD = "mypassword"; public static void main(String[] args) throws Exception { // 连接到 SQL Server 数据库 DriverManager.registerDriver(new SQLServerDriver()); Connection connection = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD); // 订阅事务日志的变化 BinaryLogClient client = new BinaryLogClient("localhost", 3306, "root", "password"); client.registerEventListener(event -> { EventHeaderV4 header = event.getHeader(); EventType type = header.getEventType(); EventData data = event.getData(); switch (type) { case EXT_WRITE_ROWS: case EXT_UPDATE_ROWS: case EXT_DELETE_ROWS: // 解析变化的数据 String[] columns = data.getColumnNames().toArray(new String[0]); Object[] values = data.getRows().stream().flatMap(Arrays::stream).toArray(); // 处理变化的数据 handleDataChange(connection, data.getTable().toString(), type, columns, values); break; default: // do nothing } }); client.connect(); } private static void handleDataChange(Connection connection, String table, EventType type, String[] columns, Object[] values) { // 处理变化的数据 System.out.format("Table %s %s: %s\n", table, type, Arrays.toString(values)); } } ``` 在这个示例中,我们使用了 `mysql-binlog-connector-java` 库来订阅事务日志的变化。`BinaryLogClient` 是这个库提供的客户端,我们可以通过它来连接到 MySQL 或者 MariaDB 数据库,并订阅事务日志的变化。在 `registerEventListener` 方法中,我们可以处理变化的数据。 3. 根据需要处理变化的数据 在 `handleDataChange` 方法中,我们可以根据需要处理变化的数据。例如,可以将变化的数据写入到日志中,或者将变化的数据发送到其他系统中进行处理。 需要注意的是,SQL Server 的事务日志格式与 MySQLMariaDB 的 binlog 格式不同,因此我们需要使用特定的工具来解析 SQL Server 的事务日志。在这个示例中,我们使用了 `mysql-binlog-connector-java` 库来解析事务日志,然后再处理变化的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值