mysql主从检测状态命令

Wesley13
• 阅读 454

开启:bin-log=1,另外注意选择行,列,还是混合模式

1)salve:

[mysqld]
server-id=2
relay-log-index=slave-relay-bin.index
relay-log=slave-relay-bin

//设置哪些数据库和表需要同步,多个库和表多写几次

replicate-do-db=info
replicate-do-table=info.tb01
replicate-do-table=info.tb02

show slave status;//显示从机的状态

show relaylog events in 'anyvapedavide-relay-bin.000018'; //查看从机执行了那些语句

show processlist;//查看从机的进程

start slave;//从机开始备份

stop slave;//当更换用户,或者需要使用change master命令事应先停止

reset slave;//重置,实际操作是master.info,relay_log.info

reset slave all;//删除所有同步信息

change master to

master_host=’192.168.10.130’,

master_user=’rep1’,

master_password=’password’,

master_log_file=’mysql-bin.000005’,

master_port=3306,

master_log_pos=261;

2)master:

server-id=1   //给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号
log-bin=master-bin
log-bin-index=master-bin.index
binlog_format=ROW;//在my.ini记录日志的方式,有三种,我这里用的是row,因为row是和sql语句无关,只和数据的更改有关.

insert into mysql.user(host,user,password) values("%","rep1",password("5erte3h7je"));

flush privileges;

grant replication slave on *.* to rep1@'%' identified by '5erte3h7je';

flush tables with read lock;//当需要和slave数据同步前锁定表

unlock tables;//客户机处理完后释放表

show master status;//显示主机状态

show processlist;//显示进程信息

show binary logs ;//显示主机的logbin日志有哪些文件

show binlog events in 'ON.000002';//显示binlog中的事件

show binlog events in ' ON.000002' from 107 limit 10;//显示binlog中的事件设置读取的位置

reset master;//重置主机的binlog日志

PURGE MASTER LOGS TO ‘binary-log.xxx’;//删除所有创建时间在binary-log.xxx之前的二进制日志

3)配置参数,如果是Inodb引擎

# 若是 innodb, 且有用 transaction 的話, 需再加入下面两行

innodb_flush_log_at_trx_commit=1

sync_binlog=1

4)出现错误,停止同步时处理一

stop slave;

set global sql_slave_skip_counter=n //客户端运行,用来跳过几个事件,只有当同步进程出现错误而停止的时候才可以执行。

start slave;

备注:此方法估计会引起主从不一至,因为线程停止了

5)出现错误,停止同步时处理二

这个方法时买书看到的

STOP SLAVE SQL_THREAD;

set global sql_slave_skip_counter=n;

START SLAVE SQL_THREAD;

此方法推荐使用,在网上搜真还不一定搜得到。吐槽该死的baidu,zhengzhisi google,现在除了满天飞广告啥都没有。

申明,此吐槽和oschina无关,如有投诉我将删除上面那句

6)偶尔某些原因需要跳过一些同步语句

set sql_log_bin=0;

....//这里放自己需要执行的sql

set sql_log_bin=1;//执行完后要重启

使用这个参数是需要注意几点:

1>千万不要不假思索的加上 global 修饰符(set global sql_log_bin=0),这样会导致所有在Master数据库上执行的语句都不记录binlog,这肯定不是你想要的结果。

2>会导致Master和Slave数据库数据不一致,要谨慎操作。最好先锁住主表为只读,再操作

7)锁表注意事项:

需要注意个特点,就是 隐式提交的语句。在退出mysql终端的时候都会隐式的执行unlock tables。也就是如果要让表锁定生效就必须一直保持对话。

查看锁表的方法:

SHOW STATUS LIKE '%lock%';
SHOW OPEN TABLES;
SHOW ENGINE INNODB STATUS;

8)远程连接可能连不上:请禁用bind-address这句话

另外报错

1200 The server is not configured as slave; fix in
1201 Could not initialize master info structure;

原因可能仅仅是因为server-id=0或者1,什么原因我不清楚,直接改为或火其它数字就行了

9)主版本高,从版本低出现一异常
Slave can not handle replication events with the checksum that master is configured to log
这个错误一般出现在master5.6,slave在低版本的情况下。这是由于5.6使用了crc32做binlog的checksum。除了把master的设置从crc32改到none
binlog-checksum = none

10)彻底删除mysql

sudo apt-get autoremove --purge mysql-server-5.0
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common //这个很重要 清理残留数据

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究
Python进阶者 Python进阶者
1个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这