在 Windows 上使用二进制日志文件 (log-bin) 恢复 mysql 数据库

Restore mysql database using binary log file (log-bin) on Windows

使用二进制日志文件恢复mysql数据库非常有用,尤其是在误操作的时候。下面是我在 Windows 上执行此操作的方法。如果此问题对您有帮助,请标记为"Useful",谢谢。

首先要检查是否开启了Mysql二进制日志功能

  • 打开Mysql命令行客户端。
  • 执行命令:显示变量如'log_bin%'

您会看到它被标记为 'on' 或 'off'。 如果显示'off',则需要打开配置文件'my.ini',在第120行添加如下配置。

# Binary Logging.
# log-bin
# You could change 'C:\Danny\MySql-BackUp\log-bin' to your own directory.
log_bin=C:\Danny\MySql-BackUp\log-bin\mysql-bin

您可以在 'C:\ProgramData\MySQL\MySQL Server 5.7' 找到 'my.ini'。

之后,当数据库中的数据发生变化时,您将获得二进制日志文件。

将日志文件导出到 sql 文件,这可以帮助您更轻松地找到要恢复的时间戳和编号。下面是 cmd 命令:

C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqlbinlog.exe C:\Danny\MySql-BackUp\log-bin\mysql-bin.000003 > C:\Danny\MySql-BackUp\log-bin\bin-log.sql

您需要在bin-log.sql中找到start-positiont和end-position,然后执行下面的命令来恢复您的数据。

C:\Program Files\MySQL\MySQL Server 5.7\bin>mysqlbinlog --no-defaults C:\Danny\M
ySql-BackUp\log-bin\mysql-bin.000003 --start-position="4" --stop-position="912"
| mysql -uroot -p123456 databaseName

命令格式:mysql -u[用户名] -p[密码] [数据库名]