先配置静态IP

2台机器mysql密码一样,最好在同一局域网内,最好在mysql刚安装时就配置好,后面有数据了不好同步。
本文实现了2台机器mysql数据同步成功;

配置my.cnf

先关闭防火墙

service iptables status

2台机器除了server-id不同之外,配置项基本一样(把a改为b)。

 vim /etc/my.cnf 

在[mysqld]部分添加如下:

#add log-bin=master-a-bin  server-id=1 relay-log=master-a-relay-bin log_slave_updates=1
sync_binlog=1
#add

配置项说明

两台MySQL均要开启binlog日志功能

log-bin  //[必须]启用二进制日志
server-id=1       //[必须]默认是1,一般取IP最后一段

两台MySQL的server-ID不能一样,需将其中一台修改为2

log_slave_updates表示slave将复制事件写进自己的二进制日志

sync_binlog=1。每进行1次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。

修改配置后重启mysqld

service mysqld restart

其它配置项:待查

binlog-do-db =new_test (要记录的数据库,多个可换行多次设置)
replicate-do-db =new_test (要复制的数据库,多个可换行过个设置)
binlog-ignore-db=mysql //不对mysql库进行日志记录操作 如下意思雷同
binlog-ignore-db=test
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
replicate-ignore-db=test  //不对test进行复制操作 如下意思雷同
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
bing-address=0.0.0.0  //意思是允许所有 机器 服务器安全起见可设置为指定的服务器IP地址 
主从复制的时候时间必须要保持一致
iptables  -I  INPUT  -p  tcp  --dport  3306  -j ACCEP

1.主服务器A(123.1.1.123)创建用户并清空日志

mysql -uroot -p
grant replication slave on *.* to 'root'@'%' identified by 'pwd';    flush privileges;

为了安全,最好将“%”改为具体的IP地址(如123.1.1.124),使该帐户只能在指定的从服务器上使用。

flush tables with read lock;  备份数据前先锁表,保证数据一致性
show binary logs; reset master; show binary logs; unlock tables;

记录下 FILE 及 Position 的值,在后面进行从服务器操作的时候需要用到。

从服务器B清空日志

show binary logs; reset master; show binary logs;

从服务器通过change master to命令修改设置

change master to  master_host='123.1.1.123',
master_user='root', master_password='pwd',
master_port=3306, master_log_file='master-a-bin.000001',master_log_pos=106;  
以上全部复制后修改并粘贴 show slave status \G;

在输出的信息中:

Slave_IO_Running: No Slave_SQL_Running: No

需要使其值为Yes

start slave; show slave status \G;

错误:
Last_IO_Error: error connecting to master 'root@123.1.1.123:3306'
mysql -h 10.24.54.18 -ureplication -p
ERROR 1130 (HY000): Host '123.103.58.124' is not allowed to connect to this MySQL server
ERROR 1045 (28000): Access denied for user 'root'@'123.103.58.124' (using password: YES)
最后发现是密码不对。

2.设置从服务器B

在“从机”B上设置复制帐号

grant replication slave on *.* to 'root'@'%' identified by 'pwd';
flush privileges;

清空“从机”日志:

show binary logs; reset master; show binary logs;

在原主服务器A上通过change master to命令修改设置,可以全部复制并粘贴:

change master to  master_host='123.103.*.124',
master_user='root', master_password='pwd', master_port=3306, master_log_file='master-b-bin.000001', master_log_pos=106;

show slave status \G;

看看

Slave_IO_Running: No Slave_SQL_Running: No

需要使其值为Yes

start slave; show slave status \G;

应该有

Slave_IO_Running: Yes Slave_SQL_Running: Yes

设置完后重启:service mysqld restart

=============================完==================

如果数据不匹配

reset slave;

测试

show databases; create database a1; use a1; create table t1(id int auto_increment primary key,name varchar(30)); insert into t1(name) values('appBox1');

可以发现数据库已同步,但2台皆可写。

下一节将实现读写分离。

经测试,如果设置之前有数据不会同步,只能同步之后的
show variables like 'server_id';
其它:
RESET MASTER 
删除所有index file 中记录的所有binlog 文件,将日志索引文件清空,创建一个新的日志文件,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库,
reset slave 将使slave 忘记主从复制关系的位置信息。该语句将被用于干净的启动, 它删除master.info文件和relay-log.info 文件以及所有的relay log 文件并重新启用一个新的relaylog文件。
使用reset slave之前必须使用stop slave 命令将复制进程停止。

MySQL集群系列1:2台机器搭建双主集群的更多相关文章

  1. MySQL集群系列2:通过keepalived实现双主集群读写分离

    在上一节基础上,通过添加keepalived实现读写分离. 首先关闭防火墙 安装keepalived keepalived 2台机器都要安装 rpm .el6.x86_64/ 注意上面要替换成你的内核 ...

  2. 六台机器搭建RedisCluster分布式集群

    原文:六台机器搭建RedisCluster分布式集群 版权声明:m_nanle_xiaobudiu https://blog.csdn.net/m_nanle_xiaobudiu/article/de ...

  3. centos 7 两台机器搭建三主三从 redis 集群

    参考自:https://linux.cn/article-6719-1.htmlhttp://blog.csdn.net/xu470438000/article/details/42971091 ## ...

  4. 集群中配置多台机器之间 SSH 免密码登录

    集群中配置多台机器之间 SSH 免密码登录 问题描述 由于现在项目大多数由传统的单台机器部署,慢慢转变成多机器的集群化部署. 但是,这就涉及到机器间的 SSH 免密码互通问题. 当集群机器比较多的时候 ...

  5. RocketMQ学习笔记(16)----RocketMQ搭建双主双从(异步复制)集群

    1. 修改RocketMQ默认启动端口 由于只有两台机器,部署双主双从需要四个节点,所以只能修改rocketmq的默认启动端口,从官网下载rocketmq的source文件,解压后使用idea打开,全 ...

  6. RocketMQ学习笔记(4)----RocketMQ搭建双Master集群

    前面已经学习了RockeMQ的四种集群方式,接下来就来搭建一个双Master(2m)的集群环境. 1. 双Master服务器环境 序号 ip 用户名 密码 角色 模式 (1) 47.105.145.1 ...

  7. 解决mysql跟php不在同一台机器上,编译安装php服务报错问题:configure: error: Cannot find MySQL header files under /application/mysql.

    在编译安装php服务时报错: configure: error: Cannot find MySQL header files under /application/mysql. Note that ...

  8. 基于Mysql 5.7 GTID 搭建双主Keepalived 高可用

    实验环境 CentOS 6.9 MySQL 5.7.18 Keepalived v1.2.13 拓扑图 10.180.2.161 M1 10.180.2.162 M2 10.180.2.200 VIP ...

  9. 读懂在单台机器上创建RabbitMQ集群

    在优锐课java中了解有关在单台计算机上安装集群以及如何向集群添加更多节点的更多信息,码了很多专业的相关知识, 分享给大家参考学习. 如果你在单台计算机上设置群集时遇到问题,那么以下文章可能会帮助回答 ...

随机推荐

  1. Servlet3.0提供的异步处理

    用属性asyncSupported=true开启Servlet对异步的支持. 在请求时,在request.startAsync()抛java.lang.IllegalStateException: N ...

  2. 拓扑排序的实现_TopoSort

    拓扑排序是求一个AOV网(顶点代表活动, 各条边表示活动之间的率先关系的有向图)中各活动的一个拓扑序列的运算, 可用于測试AOV 网络的可行性. 整个算法包含三步: 1.计算每一个顶点的入度, 存入I ...

  3. Linux系统目录结构,Shell脚本;关闭和开启防火墙

    Linux系统目录结构 目录 描述 备注 /bin a.存放着最经常使用的命令 b.可执行文件,用户命令 c.构建最小系统所需要的命令 /boot a.内核与启动文件 b.系统启动相关文件 c.启动L ...

  4. 算法笔记_062:蓝桥杯练习 最小乘积(基本型)(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 给两组数,各n个. 请调整每组数的排列顺序,使得两组数据相同下标元素对应相乘,然后相加的和最小.要求程序输出这个最小值. 例如两组数分别为 ...

  5. fwrite和fread函数的用法小结(转)

    fwrite和fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出. #include <stdio.h> size_t fread(void * ...

  6. hibernate 1 + N 问题解决

    1+N就是在hibernate中第一次查一个所需要的表的内容,他会把别的相关表的内容也查询一遍.   解决办法有三种: 1,设置LAZY. 2,借鉴createCriteria的查询语句,from T ...

  7. 代码自动生成工具 MyGeneration

    MyGeneration 是一款不错的ORM和代码生成工具,它基于模板(Template)工作,安装好MyGeneration 后自带了很多模板,并且提供在线模板库提供模板升级和允许用户自定义模板.M ...

  8. 使用scrapy进行12306车票查询

    概述 通过12306的查询API进行查询某日火车票, 结果保存在csv文件中. 详细 代码下载:http://www.demodashi.com/demo/12623.html 一.环境搭建 1. 安 ...

  9. Backbone.js 1.0.0源码架构分析(二)——Event

    (function(){ //省略前面代码 var Events = Backbone.Events = { // 根据name订阅事件,push到this._events[name] on: fun ...

  10. CSRF攻击原理及测试方法

    CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,该攻击可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在并未授权的情况下执 ...