mysql主从检测状态命令

开启: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
点赞
收藏

评论区

加载中...

相关推荐

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

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )