连接数据库
mysql -uroot -P3306 -S XX.sock
关闭数据库
mysqladmin shutdown -P3306 -S XX.sock
启动数据库
chown -R mysql:mysql ./ && nohup ./bin/mysqld_safe --defaults-file=./etc/my.cnf --user=mysql > mysql.log &
解析binlog命令
1、查看binlog中End出现的前后20行
mysqlbinlog -vv --base64-output='decode-rows'#{binlogid} | grep End -A20 -B20
2、查看binlog中指定gtid出现的前后20行
mysqlbinlog -vv --base64-output='decode-rows'#{binlogid} | grep 'XXXXXXXXXXXXX-gtid-XXXXXX' -A20 -B20
3、查看binlog中指定gtid_set中特定gtid出现的前后20行
mysqlbinlog -vv --base64-output='decode-rows'--include-gtids='XXXXXXXXXXXXXXXXXX:gtidA-gtidB'#{binlogid} | grep 'XXXXXXXXXXXXXXXXXX:gtid1' -A20 -B20
4、输出binlog中指定指定结束点出现的sql
mysqlbinlog -vv#{binlogid} --stop-position=XXXX > xxxxxx.sql (带这个--base64-output='decode-rows'可能不行)
清除binlgo日志命令
purge binary logs to “xxxxxxx” xxxxxxx为待清除的最后一个binlog之前的那个
主从库在没有开启原生复制清空数据后,需要执行下reset master然后再建立复制
查看binlog_checksum
show global variables like 'binlog_checksum'
set@master_binlog_checksum = @@global.binlog_checksum
获取server_uuid变量值
select @@global.server_uuid
查看变量explicit_defaults_for_timestamp
show variables like '%explicit_defaults_for_timestamp%';
mysql5.6中默认是off(插入null值会默认设置为当前系统时间);
mysql5.7中默认是on(插入null值还是为null)
explicit_defaults_for_timestamp不统一的情况下,timestamp类型数据设置default属性为null的情况在进行复制时可能会出现数据不一致的情况
查看变量sql_mode
select @@sql_mode;
统一设置sql_mode= NO_ENGINE_SUBSTITUTION的情况下,mysql5.6回放至mysql5.6,mysql5.6回放至mysql5.7,mysql5.7回放至mysql5.7,mysql5.7回放至mysql5.6都能够正常回放;sql_mode中含有NO_ZERO_DATE、NO_ZERO_IN_DATE等值,在执行时间类型数据为0时(建议还是向严格模式转换)
慢日志查询
./mysqldumpslow -s t -t 1 /usr/local/mysql/data/cloudlu-slow.log