mysql中如何开启binlog?开启二进制日志文件?binary log?

需求描述:

  开启mysql的binlog即binary log日志功能,在此记录下.

版本描述:

  •   mysql版本:5.7.21-log

操作过程:

1.修改my.cnf并且将以下参数加入其中,重启mysql实例

server-id=11           #由于bug,所以需要设置该参数.否则无法启动mysql实例
log-bin = mysql-bin    #其中mysql-bin代表的是basename就是生成二进制日志文件的前缀部分,默认的位置在datadir目录下,也可以设置为其他的路径

2.查看binlog相关系统参数值

mysql> show variables where variable_name in (‘log_bin‘,‘log_bin_basename‘,‘log_bin_index‘);
+------------------+-----------------------------+
| Variable_name    | Value                       |
+------------------+-----------------------------+
| log_bin          | ON                          |
| log_bin_basename | /mysql/data/mysql-bin       |
| log_bin_index    | /mysql/data/mysql-bin.index |
+------------------+-----------------------------+
3 rows in set (0.00 sec)

备注:在my.cnf中设置好log-bin之后,log_bin自动设置为ON,basename设置为mysql-bin,index文件也自动生成,index文件记录的就是所有的二进制文件的名称及位置信息.

3.查看生成的二进制文件在文件系统上的表现形式

[[email protected] data]# ls -ltr mysql-bin.*
-rw-r----- 1 mysql mysql 154 Jul 25 11:17 mysql-bin.000001
-rw-r----- 1 mysql mysql  19 Jul 25 11:17 mysql-bin.index

备注:mysql-bin是设置的basename,点号后面的序号是自动生成的,启动时,自动生成第一个文件,当该文件写满的时候,会写2,然后3,依次类推.

4.查看index文件的内容

[[email protected] data]# cat mysql-bin.index    #如果mysql-bin不在默认的路径,那么index文件中记录的就是绝对路径加文件名
./mysql-bin.000001

5.注意事项

  在官方文档中,说启用binary log只是需要将log-bin=mysql-bin设置即可,但是因为有bug,所以必须要设置server-id否则启动不成功.

官方文档解释如下:

If you specify the --log-bin option without also specifying a --server-id, the server is not allowed to start. (Bug #11763963, Bug #56739) 

6.如果my.cnf中log-bin不加basename

server-id=11
log-bin               #后面不接basename

7.重启mysql实例,查看log-bin相关信息

mysql> show variables where variable_name in (‘log_bin‘,‘log_bin_basename‘,‘log_bin_index‘);
+------------------+------------------------------+
| Variable_name    | Value                        |
+------------------+------------------------------+
| log_bin          | ON                           |
| log_bin_basename | /mysql/data/testvm-bin       |
| log_bin_index    | /mysql/data/testvm-bin.index |
+------------------+------------------------------+
3 rows in set (0.01 sec)

备注:如果不加basename,那么就是主机名-bin,主机名-bin.index这样的命名方式.

文档创建时间:2018年7月19日15:06:57

原文地址:https://www.cnblogs.com/chuanzhang053/p/9335924.html

时间: 2024-10-14 02:05:18

mysql中如何开启binlog?开启二进制日志文件?binary log?的相关文章

MySQL二进制日志(binary log)总结

本文出处:http://www.cnblogs.com/wy123/p/7182356.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) 今天无意中发现了一个云栖社区举行的MySQL“第一季:挑战玄惭之 慢SQL性能优化赛”,在测试服务器上执行其测试脚本写入数据的时候报错提示如下,Multi-statement transaction required more than 'max_binlog_cache_

MySql通过二进制日志文件恢复数据

在<百度.阿里.腾讯如何承载PB级别大数据>的视频中了解到,大型网站的数据库每天都会定时的进行数据备份份.如果设置每天的0点进行数据备份,在两个数据备份周期期间数据库出现宕机情况,0点到宕机这个时间段的数据如何备份呢?在MySql中是通过数据库的二进制日志文件进行数据恢复的. MySql的二进制日志文件默认是关闭的,需要我们在MySql根目录下的my.ini文件中设置为开启状态.设置方式为在[mysqld]节点下,添加log-bin=mysql  binlog-do-db=spring,mys

实验:模拟场景中误删除mysql数据库表,然后使用全备份以及二进制日志文件恢复操作

一.实验环境: 1.准备两台虚拟机,一台用于破坏数据库,一台用于还原,两台在同一个网络 2.两台最小化安装centos 7系统,并直接yum安装maraidb数据库 3.准备一个测试数据库文件,例如,hellodb_innodb.mysql 测试库里面最少有两个表. 二.实验步骤: 1.开启数据库的二进制日志功能 vim /etc/my.cnf[mysqld] 下面加入log-bin 表示开启二进制日志功能 2.完全备份 mysqldump -A -F --master-data=2 --sin

实战:mysql检查物理磁盘中的二进制日志文件是否有丢失

场景:有时候因为磁盘损坏或人为原因错误删除了磁盘中的二进制文件,导致mysql中的show binary logs记录和实际的物理磁盘中的二进制文件不匹配 #binlogdiff.sh #!/bin/sh #[email protected] #作用:mysql中show binary logs记录的二进制日志文件和实际的物理文件比较,检查 #磁盘中对应的二进制日志文件是否有丢失 source /usr/local/mysql/scripts/mysql_env.ini binlog_init=

如何提升mysql replication的性能&&多线程传输二进制日志

如何提升replication的性能: 延迟 : 对于mysql replication来说,在没有发生故障的情况下,出现master与slave数据不同步,延迟分为以下两种情况: 经常性延迟   : 异步同步的数据差距比较大 ,周期性的,循环. 暂时性延迟   : 突发情况,导致延迟 其主要原因就是: 网络带宽 I/O 如何减少replication延迟?? 1,最好使用内网或者专线链路传输binlog数据 (千兆网卡.还不够的话,bounding 技术,扩展带宽) 在my.cnf中强制使用内

mysql二进制日志文件详解

一.mysql的二进制日志文件 二.查看二进制日志文件信息: 1.查看二进制日志文件是否开启:show variables like 'log_bin'; 2.查看所有二进制日志文件的列表:show binary logs; 3.查看当前二进制日志文件的名称(最后一个):show master status; 4.获取最新日志文件命令:flush logs.会重新生成一个最新的日志文件. 5.清空当前二进制日志命令:reset master.每执行一次就删除当前的一个日志文件,每次删除一个文件.

mysql删除二进制日志文件

一.RESET MASTER 这个语句可以验证首次配置主机备机是否成功.步骤如下: 1. 启动master和 slave,开启replication (即 复制) 注:replication (复制) 也是mysql一个重要的技术 2.运行一些测试的语句看数据是否能够复制到 slave上面 3.当复制运行正常的话,就 stop slace 然后在slave上面执行 reset slave,去掉不需要的数据 4.在master上面执行reset master 去掉2中产生的数据 可以删除列于索引文

mysql中redo和binlog的区别

影响MySQL中redo的配置参数: innodb_log_file_size:指定每个redo日志大小,默认值48MB innodb_log_files_in_group:指定日志文件组中redo日志文件数量,默认为2 innodb_log_group_home_dir:指定日志文件组所在路劲,默认值./,指mysql的数据目录datadir 查看innodb配置: mysql> show variables like 'innodb%log%'; +---------------------

MySQL完全备份脚本:数据+二进制日志+备份日志

一. 脚本须知 1.mysql数据文件和二进制日志文件最好保存在不同的分区或存储设备上 2.备份完成后注意修改数据的权限以防止泄露重要信息,哪些主机哪些用户可以用来恢复 3. 查看导出的2进制日志文件看是否符合逻辑和业务,2进制日志文件只能保证物理上数据即时点还原,却保证不了数据逻辑上正确恢复(比如drop语句) 4.为了保证数据恢复没有问题建议在测试机上做一次数据恢复测试 5.恢复测试OK可以放到crontab定时任务中 1 #!/bin/bash 2 # 3 # Function:实现mys