一、查看下自己的MySQL是否开启了binlog日志
# 是否启用binlog日志 OFF:关闭 ON:开启 show variables like 'log_bin';
mysql --help | grep 'Default options' -A 1
执行结果
Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
#第一种方式: #开启binlog日志 log_bin=ON #binlog日志的基本文件名 log_bin_basename=/var/lib/mysql/mysql-bin #binlog文件的索引文件,管理所有binlog文件 log_bin_index=/var/lib/mysql/mysql-bin.index #配置serverid server-id=1 #第二种方式: #此一行等同于上面log_bin三行 log-bin=/var/lib/mysql/mysql-bin #配置serverid
server-id=1
修改完配置后,重启mysql。
systemctl stop mysqld.service
systemctl start mysqld.service
systemctl status mysqld.service
在navicat中或者在服务器中进入mysql 执行SHOW VARIABLES LIKE 'log_bin';
Value 值为 ON即可。
SHOW VARIABLES LIKE 'log_bin'
PS:mysql启动停止命令
一、 启动 1、使用 service 启动:service mysql start 2、使用 mysqld 脚本启动:/etc/inint.d/mysql start 3、使用 safe_mysqld 启动:safe_mysql& 二、停止 1、使用 service 启动:service mysql stop 2、使用 mysqld 脚本启动:/etc/inint.d/mysql stop 3、mysqladmin shutdown 三、重启 1、使用 service 启动:service mysql restart 2、使用 mysqld 脚本启动:/etc/inint.d/mysql restart
首先在21:21分 我的fo_service库的admin表中有这么几条数据
随后我向admin表插入了三条数据
但是呢 我在21:24分误删除了这三条数据, 我想恢复怎么办呢
show binary logs;
2、查看binlog的目录
show global variables like '%log_bin%';
3、导出sql文件
执行完下面这个命令,输出的sql文件在当前你所在的目录位置。
/var/lib/mysql/mysql-bin.000001
两种都可以 mysqlbinlog --no-defaults --database=fo_service --start-datetime="2022-04-25 21:21:00" --stop-datetime="2022-04-25 21:23:00" -v /var/lib/mysql/mysql-bin.000001 > nobase64.sql mysqlbinlog --no-defaults --database=fo_service --start-datetime="2022-04-25 21:21:00" --stop-datetime="2022-04-25 21:23:00" -v --base64-output=decode-rows /var/lib/mysql/mysql-bin.000001 > base64.sql
4、执行命令,还原数据
输出文件之后 将文件下载到本地 (我放在D盘的根目录下)
将服务器上的库复制到本地一份
使用黑窗口(cmd)的root账号登录mysql后
执行source命令
查看本地的admin表的数据,可以看见删除的数据恢复了(包括数据的主键ID都是恢复的,大可放心)。
最后将本地的数据迁移到服务器上的数据库中即可。