mysql设置binlog⽬录_⼀⽂解析MySQL中那些常⽤⼯具、⽇志
及读写分离
1.MySQL中常⽤⼯具
1.1 mysql
该mysql不是值mysql服务,⽽是指mysql的客户端⼯具。
语法 :
mysql [options] [database]
1.1.1连接选项
1.1.2 执⾏选项
-e, --execute=name : 执⾏sql语句并退出
1.2 mysqladmin
mysqladmin是⼀个执⾏管理操作的客户端程序。可以⽤它来检查服务器的配置和当前状态、创建并删除数据库等。
可以通过 :mysqladmin --help 指令查看帮助⽂档。
1.3 mysqlbinlog
由于服务器⽣成的⼆进制⽇志⽂件以⼆进制格式保存,所以如果想要检查这些⽂本的⽂本格式,就会使⽤到mysqlbinlog⽇志管理⼯具。语法 :
1.4 mysqldump
mysqldump客户端⼯具⽤来备份数据库或在不同数据库之间进⾏数据迁移。备份内容包含创建表,及插⼊表的sql语句。
语法 :
1.4.1 连接选项
1.4.2 输出内容选项
⽰例 :
mysqldump -uroot -p2143 db01 tb_book --add-drop-database --add-drop-table > a.sqlmysqldump -uroot -p2143 -T /tmp test city
1.5 mysqlimport/source
mysqlimport是客户端数据导⼊⼯具,⽤来导⼊mysqldump 加 -T 参数后导出的⽂本⽂件。
语法 :
mysqlimport [options] db_name textfilel [textfile2…]
⽰例 :
mysqlimport -urrot -p2143 test /
如果需要导⼊sql⽂件,可以使⽤mysql中的source指令:
source /root/tb_book.sql
1.6 mysqlshow
mysqlshow客户端对查⼯具,⽤来很快的查存在那些数据库、数据库中的表、表中的列或者索引。语法 :
mysqlshow [options] [db_name [table_name] [col_name]]]
参数 :
–count :显⽰数据库及表的统计信息(数据库,表均可以不指定)
-i :显⽰指定数据库或者指定表的状态信息
⽰例 :
2. MySQL⽇志
在任何⼀种数据库中,都会有各种各样的⽇志,记录着数据库⼯作的⽅⽅⾯⾯,以帮助数据库管理员追踪数据库曾经发⽣过的各种事件。MySQL也不例外,在MySQL中,有四种不同的⽇志,分别是错误⽇志、⼆进制⽇志(BINLOG⽇志)、查询⽇志和慢查询⽇志,这些⽇志记录着数据库在不同⽅⾯的踪迹。
2.1 错误⽇志
错误⽇志是MySQL中最重要的⽇志之⼀,它记录了当MySQL的启动和停⽌时,以及服务器在运⾏过程中发⽣任何严重错误时的相关信息。当数据库出现任何故障导致⽆法正常使⽤时,可以⾸先查看此⽇志。
该⽇志是默认开启的,默认存放⽬录为mysql的数据⽬录(var/lib/mysql),默认的⽇志⽂件为(hostname是主机名)。
查看⽇志位置指令 :
show variables like ‘log_error%’;
查看⽇志内容 :
tail -f /var/lib/
2.2 ⼆进制⽇志
2.2.1 概述
⼆进制⽇志(BINLOG)记录了所有的DDL(数据定义语⾔)语句和DML(数据操作语⾔)语句,但是不包括数据查询语句。此⽇志对于灾难时的数据恢复起着极其重要的作⽤,MySQL的主从复制,就是通过该binlog实现的。
⼆进制⽇志,默认情况下是没有开启的,需要MySQL的陪着⽂件中开启,并配置MySQL⽇志的格式。
配置⽂件位置 :/usr/myf
⽇志存放位置 :配置时,给定了⽂件名但是没有指定路径,⽇志默认写⼊MySQL的数据⽬录。
配置开始binlog⽇志,⽇志的⽂件前缀为mysqlbin ------》 ⽣成的⽂件名如 :
mysqlbin.000001,mysqlbin.000002
log_bin=mysqlbin
配置⼆进制⽇志的格式
binlog_format=STATEMENT
2.2.2 ⽇志格式
STATEMENT
该⽇志格式在⽇志⽂件中记录的都是SQL语句(statmeent),每⼀条对数据进⾏修改的SQL都会记录在⽇志⽂件中,通过MySQL提供的MySQLbinlog⼯具,可以清晰的查看到每条语句的⽂本。主从复制的时候,从库(slave)会将⽇志解析为原⽂本,并在从库重新执⾏⼀次。
ROW
该⽇志格式在⽇志⽂件中记录的是每⼀⾏的数据变更,⽽不是记录SQL语句。⽐如,执⾏SQL语句 :update tb_book set status =
‘1’,如果是STATEMENT⽇志格式,在⽇志中会记录⼀⾏SQL⽂件;如果是ROW,由于是对全表进⾏更新,也就是每⼀⾏记录都会发⽣变更,ROW格式的⽇志中会记录每⼀⾏的数据变更。
MIXED
这是⽬前MySQL默认的⽇志格式,即混合了STATEMENT和ROW两种格式。默认情况下采⽤STATEMENT,但是在⼀些特殊情况下采⽤ROW来进⾏记录。MIXED格式能尽量利⽤两种模式的优点,⽽避开他们的缺点。
2.2.3 ⽇志读取
由于⽇志以⼆进制⽅式存储,不能直接读取,需要⽤mysqlbinlog⼯具来查看,语法如下 :
mysqlbinlog log-file;
查看STATEMENT格式⽇志 :
查看⽇志⽂件 :默认在/var/lib/mysql⽬录下
mysqlbin.index : 该⽂件是⽇志索引⽂件,记录⽇志的⽂件名;
mysqlbing.000001 : ⽇志⽂件
查看⽇志内容 :
mysqlbinlog mysqlbing.000001;
查看ROW格式⽇志
配置 :
mysql连接工具配置开启binlog⽇志,⽇志的⽂件前缀为mysqlbin —》⽣成的⽂件名如:mysqlbin.000001,mysqlbin.000002
log_bin=mysqlbin
配置⼆进制⽇志的格式
binlog_format=ROW

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。