扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
将log-bin选项加入到my.cnf/my.ini中的[mysqld]组中
沿河ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
log-bin=dir/filename 生成的文件为filename.number 如log.000001,log000002
记得配置完要重新启动数据库服务哟
mysql命令行下怎样实现数据的回滚操作
在MySQL有时执行了错误的update或者delete时导致大量数据错误恢复的办法。执行时没有开启事务,也没有对数据进行。这时就需要使用到sqlbinlog工具。
sqlbinlog需要开启,具体的打开方法就不说了。
使用sqlbinlog会产生bin文件,恢复就需要用到这些文件。文件中记录着数据库的所有操作。(此方法的操作是将数据库之前所执行的语句重新执行一次,以达到恢复效果)
具体步骤:1,先找到bin文件,一般都是在mysql的data文件夹中,结尾以.00000X等形式结束。
2,寻找需要还原的时间点 使用语句 mysqlbinlog 文件名 例(MySQLbinlog xxbin.000001)来查看内容,然后找到对应的具体时间
3,导出sql语句,使用语句 mysqlbinlog 文件名sql文件路径 例(mysqlbinlog xxxbin,00001a.sql | mysql -u root -p )
如果需要指定时间导出--start--date -stop='' --date='' 来导出指定时间执行的语句例(sqlbinlog --start-stop='2015-11-22 10:00:00' xxbin.000001a.sql | mysql -u root -p )这句意思是导出在2015-11-22 10点之前的语句,反之start是导出时间之后的。 start和stop可以同时使用。
如果存在多个bin文件,则按照需要导出。
4,使用mysql将导出的语句执行一次。
如何开启MySQL 5.7.12 的二进制日志
1. 打开/etc下的my.cnf文件
2. 编辑它,添加内容:
log_bin=binary-log #二进制日志的文件名
server_id=1 #必须指定server_id,这是MySQL 5.7.3以后的要求
binlog-do-db=yrld #备份的数据库名,可以是多个
binlog-do-db=website
binlog-do-db=yrldgold
MySQL的日志文件模块启动后才会有日志记录。
开启日志服务:
在MY.INI里,MYSQLD项下添加log-bin=mysql。
如果只对某个库进行日志文件记录,那么再添加binlog-do-db=test,这样就只记录test数据库的日志,而放弃其他的。
添加完后,重新启动MYSQL的服务,日志文件开始工作了.
查看是否启用了日志命令:mysqlshow variables like 'log_bin';
查看当前的日志命令:mysql show master status;
看二进制日志文件用mysqlbinlog命令:shellmysqlbinlog mail-bin.000001
从概述中我可以看到my.ini配置信息的log-bin没有指定文件扩展名,这是因为即使你指定上扩展名它也不使用。当mysql创建二进制日志文件时,首先创建一个以“mysql_log_bin”为名称,以“.index”为后缀的文件;再创建一个以“mysql_log_bin”为名称,以“.000001”为后缀的文件。当mysql服务重新启动一次以“.000001”为后缀的文件会增加一个,并且后缀名加1递增;如果日志长度超过了max_binlog_size的上限(默认是1G)也会创建一个新的日志文件;使用flush logs(mysql命令符)或者执行mysqladmin –u –p flush-logs(windows命令提示符)也会创建一个新的日志文件。
既然写入的都是MySQL二进制数据,用记事本打开文件是看不到正常数据的,那怎么查看呢?
使用BIN目录下mysqlbinlog命令,如:
Binmysqlbinlog d:/mysql_log/mysql_bin.000001
Binmysqlbinlog d:/mysql_log/mysql_bin.000002
Binmysqlbinlog d:/mysql_log/mysql_bin.000003
Binmysqlbinlog d:/mysql_log/mysql_bin.000004
Binmysqlbinlog d:/mysql_log/mysql_bin.000005
使用SQL语句也可查看mysql创建的二进制的文件目录:
Mysql show master logs; 查看当前二进制文件状态:
mysql show master status;
二进制日志开启方法:
查看系统变量log_bin,如果其值为OFF,表示没有开启二进制日志(binary log),如果需要开启二进制日志
修改my.cnf,在[mysqld]下面增加
log-bin=/data/mysqldb/log/mysql-bin.log
binlog_format = ROW
expire_logs_days=15
server_id = 2
修改完之后重启MySQL,然后再查看show variables like 'log_bin%'; 这个时候你会发现log_bin的value值变成了ON
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流