MYSQL通过日志文件节点进行修复。报错

我通过备份将数据库恢复到备份的时间,再通过日志文件的开始节点和结束节点,进行部分数据的恢复。但是执行一段时间后就报错

mysqlbinlog: Error writing file '(null)' (Errcode: 22)

请问这个问题怎么解决???   实在是找不到这个错误的原因

mysqlbinlog --no-defaults -d a0127104952 D:/mysql/mysql5.5.20/data/mysql-bin.000590 --start-position 4 --stop-position 1930285 | mysql -uroot -p

请有遇到过相似问题的朋友吗?

首先,我们必须检查是否已打开Mysql二进制日志功能。

  • 打开Mysql命令行客户端。
  • 执行命令:显示类似“ log_bin%”的变量

您会看到它被标记为“开”或“关”。如果显示“ 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中找到开始位置和结束位置,然后执行以下命令来恢复数据。

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 [密码] [数据库名称]

编辑my.ini文件后,需要重新启动Mysql服务。

如果重新启动mysql服务时发生错误,您可以尝试将log-bin目录设置为以下格式:“ C:/ Danny / MySql-BackUp / log-bin / mysql-bin”

https://mp.csdn.net/editor/html/113702169