如何从mysql的date 恢复 数据
发布网友
发布时间:2022-04-08 03:46
我来回答
共1个回答
热心网友
时间:2022-04-08 05:16
是否启用了日志
mysql>show
variables
like
\'log_%\';
显示当前日志的详细情况
mysql>
show
master
status;
显示日志文件名和文件大小
mysql>
show
master
logs;
如果未启用日志,一般可以从选项文件(即my.cnf
or
my.ini,取决于操作系统)中进行配置,在[mysqld]后加上
log-error="路径名"
log="路径名"
等等,其中可选的有
错误日志:
-log-err
查询日志:
-log
慢查询日志:
-log-slow-queries
更新日志:
-log-update(注释:二进制日志已经代替了老的更新日志,更新日志在MySQL
5.1中不再使用。)
二进制日志:
-log-bin
一般使用二进制日志较多,如:log-bin="/路径/mysql-log-bin"
如果只加了以上的语句,那么将默认为所有数据库记录日志,若要针对某些数据库,则另起一行加上
binlog-do-db=db_name
在有了二进制日志之后可以通过mysqlbinlog工具得到日志文件,输入命令
路径/mysqlbinlog
--start-date="2011-12-21
14:30:00"
--stop-date="2011-12-21
14:30:00"/路径/mysql-log-bin.[0-9]*
>/路径/test.log
把从start-date到stop-date的日志输出到test.log中,还可以使用的常见选项有start-position,stop-positon,注意其值是日志中的“#
at”后跟的数字,得到的是指定位置之间的日志数据。
做数据库的恢复时,是数据库备份+日志来恢复数据。特别提示,mysql每次启动都会重新生成一个后缀不同的日志文件,如果mysql每天都要重新启动一次的话,注意不要选错了日志文件。
把输出的文件直接用执行sql语句的方式执行一遍即恢复了指定日志中的操作。
备份一个数据库(或其中的某些表)
/路径/mysqlmp
-u
user
-p
-h
host
db
[--tables
table1
table2]
>/路径/
/file_$(date
-d
today
+%Y-%m-%d-%H-%M).sql
(文件名包含了当前时间)