哪个网站可以做艺术字,做网站用什么cms 知乎,广州小程序开发,wordpress超链接无下划线目录
一、开启二进制日志
二、检查二进制日志是否开启
三、使用二进制日志备份和恢复
使用二进制日志备份恢复前先创建备份#xff1a;
应用二进制日志#xff1a;
扩展用法#xff1a;
四、常见命令和操作
五. 使用 mysqlbinlog 工具查看二进制日志
1. 查看二进制…目录
一、开启二进制日志
二、检查二进制日志是否开启
三、使用二进制日志备份和恢复
使用二进制日志备份恢复前先创建备份
应用二进制日志
扩展用法
四、常见命令和操作
五. 使用 mysqlbinlog 工具查看二进制日志
1. 查看二进制日志的内容
2. 解码二进制日志并将内容保存到文件
3. 查看特定时间范围内的日志
4. 查看特定位置范围内的日志
5. 查看所有二进制日志文件的内容
6. 只查看头部信息
7. 使用过滤条件查看特定表的日志 在 MySQL 中二进制日志Binary Log, bin-log是用于记录所有更改数据库数据的 SQL 语句的日志文件。开启和管理二进制日志可以用于数据恢复、主从复制等场景。默认是关闭的。 一、开启二进制日志
编辑MySQL配置文件/etc/my.cnf 在 [mysqld] 部分添加以下行
log-binmysql-bin
binlog-formatROW
server-id1log-bin指定二进制日志文件的名称这里是 mysql-bin。binlog-format设置二进制日志记录的格式ROW 是推荐的格式。server-id服务器唯一标识符用于主从复制。 重启MySQL服务 使更改生效重启MySQL服务
systemctl restart mysqld 二、检查二进制日志是否开启 登录MySQL mysql -u root -p[密码]检查二进制日志状态
SHOW VARIABLES LIKE log_bin;
SHOW BINARY LOGS;通过 SHOW VARIABLES LIKE log_bin; 验证 log_bin 是否为 ON。通过 SHOW BINARY LOGS; 检查现有的二进制日志文件。 三、使用二进制日志备份和恢复 使用二进制日志备份恢复前先创建备份 在定期备份数据时创建物理导出如 mysqldump并记录此时的二进制日志位置。
mysqldump -u root -p[密码] --all-databases --single-transaction --flush-logs --master-data2 backup.sql--single-transaction在一个事务中执行确保一致性。--flush-logs刷新日志文件开始新的二进制日志。--master-data2在导出文件中注释的形式记录二进制日志的文件名和位置。 应用二进制日志 假设从基于时间点时间戳恢复不限定于某个特定的库或表
mysqlbinlog --start-datetime2024-06-10 10:00:00 --stop-datetime2024-06-10 12:00:00 mysql-bin.000001 | mysql -u root -p或者基于位置点恢复不限定于某个特定的库或表
mysqlbinlog --start-position107 --stop-position2345 mysql-bin.000001 | mysql -u root -p注也可以在上面命令末尾加上一个库名表示这些数据要在指定的库中执行 扩展用法 指定库的操作 直接指定库在 MySQL 中解析和应用二进制日志时可以使用 --database 选项 mysqlbinlog --start-datetime2024-06-10 10:00:00 --stop-datetime2024-06-10 12:00:00 --databaseyour_database mysql-bin.000001 | mysql -u root -p在这条命令中--databaseyour_database 确保只有与 your_database 数据库相关的 SQL 语句被解析和执行。 针对特定库或表解析日志 例如假设只关心 test_db 数据库中的操作将想要的生成sql语句文件 mysqlbinlog --start-position107 --stop-position2345 mysql-bin.000001 | grep use test_db\|table_name filtered-log.sql 然后应用筛选后的 SQL 日志 mysql -u root -p[密码] filtered-log.sql 四、常见命令和操作 列出所有二进制日志文件
SHOW BINARY LOGS;查看当前二进制日志文件和位置
SHOW MASTER STATUS;清理旧的二进制日志
假设想删除前30天的二进制日志
PURGE BINARY LOGS BEFORE DATE_SUB( NOW(), INTERVAL 30 DAY);或者删除所有:
PURGE BINARY LOGS TO mysql-bin.010; 五. 使用 mysqlbinlog 工具查看二进制日志 1. 查看二进制日志的内容
mysqlbinlog mysql-bin.000001这个命令会将 mysql-bin.000001 文件的内容输出到控制台内容为可读的 SQL 语句。 2. 解码二进制日志并将内容保存到文件
mysqlbinlog mysql-bin.000001 decoded-binlog.sql这个命令会将 mysql-bin.000001 文件的内容解码并将结果保存到 decoded-binlog.sql 文件中。 3. 查看特定时间范围内的日志
mysqlbinlog --start-datetime2024-06-10 10:00:00 --stop-datetime2024-06-10 12:00:00 mysql-bin.000001这个命令会输出指定时间范围内的二进制日志内容。 4. 查看特定位置范围内的日志
mysqlbinlog --start-position107 --stop-position2345 mysql-bin.000001这个命令会输出指定位置范围内的二进制日志内容。 5. 查看所有二进制日志文件的内容
如果有多个二进制日志文件可以使用以下命令查看所有二进制日志文件的内容
mysqlbinlog mysql-bin.000001 mysql-bin.000002 mysql-bin.000003或者更方便的方法
mysqlbinlog mysql-bin.0000*6. 只查看头部信息
有时您可能只需要查看二进制日志文件的头部信息可以使用 --base64-outputDECODE-ROWS -vv 选项。
mysqlbinlog --base64-outputDECODE-ROWS -vv mysql-bin.0000017. 使用过滤条件查看特定表的日志
使用 mysqlbinlog 结合 grep 来筛选特定表的日志内容
mysqlbinlog mysql-bin.000001 | grep -i table_name8.查看当前二进制文件
SHOW MASTER STATUS\G;
mysql show master status\G
*************************** 1. row ***************************File: mysql-bin.000002Position: 154Binlog_Do_DB: Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)输出结果说明
File: 当前正在写入的二进制日志文件名。
Position: 二进制日志中的当前写入位置。复制从服务器将从这个位置开始读取日志。
Binlog_Do_DB: 配置中要求记录到日志的数据库名。
Binlog_Ignore_DB: 配置中要求忽略的数据库名。
Executed_Gtid_Set: 已执行的 GTID全局事务 ID集如果开启了 GTID 基于二进制日志。 9. 会创建新的日志文件
FLUSH LOGS; 执行成功后MySQL 会创建新的日志文件每个启用了日志的类别例如二进制日志、错误日志、慢查询日志都将使用新的文件名来记录后续的日志信息。
具体用途
二进制日志生成一个新的二进制日志文件现有的二进制日志文件会保留可以用于恢复和备份操作。错误日志重新启动 MySQL 错误日志文件。慢查询日志重新启动慢查询日志文件。常规日志重新启动常规查询日志文件。 扩展刷新特定类型的日志
刷新二进制日志
FLUSH BINARY LOGS;刷新错误日志
FLUSH ERROR LOGS;刷新慢查询日志
FLUSH SLOW LOGS;刷新常规查询日志
FLUSH GENERAL LOGS;