mysql timdir_MySQL 8.0.12 mysqlbinlog命令参数详解

1.版本号不同:

# /usr/local/mysql57/bin/mysqlbinlog --version

/usr/local/mysql57/bin/mysqlbinlog Ver 3.4 for linux-glibc2.12 at x86_64

# /usr/local/mysql80/bin/mysqlbinlog --version

/usr/local/mysql80/bin/mysqlbinlog Ver 8.0.12 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)

2.新增参数:

--server-public-key-path=name

--get-server-public-key

--ssl-fips-mode=name

--print-table-metadata

新增TLS的版本支持TLSv1.2

3.剔除参数:

--secure-auth

--ssl 使用参数替代--ssl-mode

--ssl-verify-server-cert 使用参数--ssl-mode=VERIFY_IDENTITY替代

4.mysqlbinlog参数说明:

--base64-output=name binlog输出语句的base64解码 分为三类:

默认是值auto ,仅打印base64编码的需要的信息,如row-based 事件和事件的描述信息。

never 仅适用于不是row-based的事件

decode-rows 配合--verbose选项一起使用解码行事件到带注释的伪SQL语句

--bind-address=name 要绑定的IP地址

--character-sets-dir=name 指定字符集的路径

--set-charset=name 将“SET NAMES character_set”添加到输出中,用于改变binlog的字符集。

-d, --database=name 列出数据库的名称(仅限binlog文件存储在本地)

--rewrite-db=name 将binlog中的事件信息重定向到新的数据库

--调试信息相关:

-#, --debug[=#] 非调试版本,获取调试信息并退出

--debug-check 非调试版本,获取调试信息并退出

--debug-info 非调试版本,获取调试信息并退出

--default-auth=name 默认使用的客户端认证插件

-D, --disable-log-bin 禁用binlog日志,若开启--to-last-log并发送输出文件到相同的mysql server。这种方式避免无限循环。

在规避数据库奔溃恢复数据的时候有用。注意:需要super权限来使用此选项。

-F, --force-if-open 强制开启binlog,若binlog非正常关闭,默认是on可使用--skip-force-if-open关闭。

-f, --force-read 强制读取未知的binlog事件

-H, --hexdump 使用十六进制和ASCII码转储输出的信息

-h, --host=name 获取binlog的服务器IP地址或者域名

-i, --idempotent 通知服务器使用幂等模式应用行事件

-l, --local-load=name 准备LOAD DATA INFILE的本地临时文件指定目录。

-o, --offset=# 跳过前N个条目

-p, --password[=name] 连接远程服务器的密码

--plugin-dir=name 客户端插件的目录。

-P, --port=# 用于连接的端口,0表示默认值。端口使用的优先级:my.cnf,$ MYSQL_TCP_PORT,/etc/services,内置默认值(3306)

--protocol=name 用于连接的协议(tcp,socket,pipe,memory)

-R, --read-from-remote-server 从MySQL远程服务器读取二进制日志,是read-from-remote-master = BINLOG-DUMP-NON-GTIDS的别名。

--read-from-remote-master=name

--raw 配合参数-R一起使用,输出原始的binlog数据而不是SQL语句

-r, --result-file=name 输出指定的文件,和--row一起使用,此时是数据文件的前缀。

-t, --to-last-log 配合-R一起使用

--server-id=# 仅提取服务器创建的binlog条目

给定的id。

--server-id-bits=# 设置server-id中的有效位数。

-s, --short-form 仅适用于常规查询,没有额外的信息和row-based事件信息。仅用于测试,不使用于生产环境。

如果你想抑制base64-output,考虑使用--base64-output = never代替。

-S, --socket=name 使用socket文件连接。

---SSL相关的参数:

--server-public-key-path=name PEM格式的RSA 秘钥

--get-server-public-key 服务器的公钥

--ssl-mode=name SSL连接的模式

--ssl-ca=name PEM格式的CA文件

--ssl-capath=name CA路径

--ssl-cert=name PEM格式的X509证书

--ssl-cipher=name 使用的SSL密码

--ssl-key=name PEM格式的X509密钥

例子:

查看日志

# mysqlbinlog mysql-bin.407

根据position从20-2000查找resource库相关记录,并输出到指定文件:

# mysqlbinlog --start-position="20" --stop-position="2000" --database=resource mysql-bin.407 --result-file=result.sql

查找并导入数据库:

# mysqlbinlog --start-position="20" --stop-position="2000" --database=resource mysql-bin.407 | mysql -u root

还可以根据时间来查找记录:

# mysqlbinlog --start-datetime="2012-09-20 8:10:00" --stop-datetim="2012-09-25 07:30:00" mysql-bin.407 --result-file=result.sql

……

mysqlbinlog 导出数据,转换编码后导入

原来的数据编码为gb2312,将其转换成 utf8 编码,并插入

(1)从position=387426452开始导出resource数据库信息

#/usr/local/mysql/bin/mysqlbinlog --position=387426452 --set-charset=utf8 --database=resource mysql-bin.407 --result-file=result_resource.sql

(2)转换编码为utf8

#iconv -t utf-8 -f gb2312 -c result_resource.sql > new_result_resource.sql_utf8.sql

(3)导入数据库

在mysql会话中需要set names utf8;

mysql> set names utf8;

mysql> source /tmp/new_result_resource.sql_utf8.sql

--ssl-crl=name 证书撤销列表

--ssl-crlpath=name 证书撤销列表的路径。

--tls-version=name TLS使用的版本,可用的版本: TLSv1, TLSv1.1,TLSv1.2

--ssl-fips-mode=name 要使用的SSL FIPS模式,允许的值为:OFF,ON,STRICT

常用选项:

--start-datetime=name binlog文件读取的起始时间点,可接受datetime和timestamp类型,格式2004-12-25 11:25:56

--stop-datetime=name binlog文件的结束的时间点。

-j, --start-position=# 读取binlog文件的位置信息

--stop-position=# binlog文件的结束的位置信息

--stop-never

--stop-never-slave-server-id=#

--connection-server-id=#

--参数相关:

--binlog-row-event-max-size=# 指定基于行的binlog的大小,改值必须是256的倍数。

-c, --verify-binlog-checksum 验证binlog的事件信息

--open-files-limit=# 打开文件的限制,默认是操作系统的限制。

-V, --version mysqlbinlog的版本信息

-v, --verbose 重新构建伪SQL语句的行信息输出,-v -v会增加列类型的注释信息。

-u, --user=name 连接远程服务器的用户名。

--GTID相关:

--skip-gtids 跳过GTID

--include-gtids=name 打印时间提供的GTID

--exclude-gtids=name 打印所有事件提供的GTID

--print-table-metadata 打印存储于Table_map_log_event的metadata信息。

常用命令列举:

binlog 通过记录二进制文件的方式备份数据,可以通过该二进制文件将数据恢复到某一时段或某一操作点。

1. 使用mysqlbinlog工具恢复数据

mysqlbinlog日志如何开启?

在my.cnf文件中加一行。

# vi /etc/my.cnf

[mysqld]

log-bin=mysqlbin-log #添加这一行就可以了,=号后面自己定义日志文件名,默认该文件是存储在datadir中。

mysqlbinlog用法详细说明

服务器生成的二进制日志文件要使用mysqlbinlog实用工具来读取。

# mysqlbinlog [options] log-files...

例如,要想显示二进制日志mysql-bin.407的内容,使用下面的命令:

# mysqlbinlog mysql-bin.407

输出包括 mysql-bin.407 中包含的所有语句以及其它信息,例如每个语句花费的时间、客户发出的线程ID、发出线程时的时间戳等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值