MySQL集群系列1:2台机器搭建双主集群
先配置静态IP
配置my.cnf
先关闭防火墙
2台机器除了server-id不同之外,配置项基本一样(把a改为b)。
在[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日志功能
两台MySQL的server-ID不能一样,需将其中一台修改为2
log_slave_updates表示slave将复制事件写进自己的二进制日志
sync_binlog=1。每进行1次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。
修改配置后重启mysqld
service mysqld restart
其它配置项:待查
1.主服务器A(123.1.1.123)创建用户并清空日志
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 -pERROR 1130 (HY000): Host '123.103.58.124' is not allowed to connect to this MySQL serverERROR 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
=============================完==================
如果数据不匹配
测试
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台皆可写。
下一节将实现读写分离。
MySQL集群系列1:2台机器搭建双主集群的更多相关文章
- MySQL集群系列2:通过keepalived实现双主集群读写分离
在上一节基础上,通过添加keepalived实现读写分离. 首先关闭防火墙 安装keepalived keepalived 2台机器都要安装 rpm .el6.x86_64/ 注意上面要替换成你的内核 ...
- 六台机器搭建RedisCluster分布式集群
原文:六台机器搭建RedisCluster分布式集群 版权声明:m_nanle_xiaobudiu https://blog.csdn.net/m_nanle_xiaobudiu/article/de ...
- centos 7 两台机器搭建三主三从 redis 集群
参考自:https://linux.cn/article-6719-1.htmlhttp://blog.csdn.net/xu470438000/article/details/42971091 ## ...
- 集群中配置多台机器之间 SSH 免密码登录
集群中配置多台机器之间 SSH 免密码登录 问题描述 由于现在项目大多数由传统的单台机器部署,慢慢转变成多机器的集群化部署. 但是,这就涉及到机器间的 SSH 免密码互通问题. 当集群机器比较多的时候 ...
- RocketMQ学习笔记(16)----RocketMQ搭建双主双从(异步复制)集群
1. 修改RocketMQ默认启动端口 由于只有两台机器,部署双主双从需要四个节点,所以只能修改rocketmq的默认启动端口,从官网下载rocketmq的source文件,解压后使用idea打开,全 ...
- RocketMQ学习笔记(4)----RocketMQ搭建双Master集群
前面已经学习了RockeMQ的四种集群方式,接下来就来搭建一个双Master(2m)的集群环境. 1. 双Master服务器环境 序号 ip 用户名 密码 角色 模式 (1) 47.105.145.1 ...
- 解决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 ...
- 基于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 ...
- 读懂在单台机器上创建RabbitMQ集群
在优锐课java中了解有关在单台计算机上安装集群以及如何向集群添加更多节点的更多信息,码了很多专业的相关知识, 分享给大家参考学习. 如果你在单台计算机上设置群集时遇到问题,那么以下文章可能会帮助回答 ...
随机推荐
- [OpenCV]实验1.1:图像加载、显示
实验要求:利用图像库的功能,实现从文件加载图像,并在窗口中进行显示的功能:利用常见的图像文件格式(.jpg;.png;.bmp; .gif)进行测试 实验原理:图片读取到程序中是以Mat结构存储的,在 ...
- 纯 PHP 代码最好在文件末尾删除 PHP 结束标记
如果文件内容是纯 PHP 代码,最好在文件末尾删除 PHP 结束标记.这可以避免在 PHP 结束标记之后万一意外加入了空格或者换行符,会导致 PHP 开始输出这些空白,而脚本中此时并无输出的意图. & ...
- Microsoft.VisualStudio.DebuggerVisualizers.dll 文件位置 for VisualStudio 2015
可视化调试工具(Microsoft.VisualStudio.DebuggerVisualizers) "C:\Program Files (x86)\Microsoft Visual St ...
- selenium 问题:加了显性等待后,操作元素依然出错
背景: 用WebDriverWait时,一开始用的是presence_of_element_located,我对它的想法就是他就是用来等待元素出现.结果屡屡出问题.元素默认是隐藏的,导致等待过早的就结 ...
- Firefly 流程架构
print '----startmaster------' 1print '----appmain------' 2 print '----netserver------' 3 print '---- ...
- PHP-PHP常见错误
错误1:foreach循环后留下悬挂指针 在foreach循环中,如果我们需要更改迭代的元素或是为了提高效率,运用引用是一个好办法: $arr = array(1, 2, 3, 4); foreach ...
- jetty maven插件端口设置
在jetty的maven插件中有两种方式设置jetty的端口(默认为:8080). 第一种,通过命令行,在启动jetty的时候设置:mvn -Djetty.port=8081 jetty:run 第二 ...
- xcode9.2 objective-c install (mac 10.12.6)
1. xcode下载: https://download.developer.apple.com/Developer_Tools/Xcode_9.2/Xcode_9.2.xip 2. 点击默认安装即可 ...
- 一个官翻教程集合:ASP.NET Core 和 EF Core 系列教程
通过一个大学课程案例讲解了复杂实体的创建过程及讲解 1.ASP.NET Core 和 Entity Framework Core 系列教程——入门 (1 / 10) 2.ASP.NET Core 和 ...
- jsp的页面包含——静态包含、动态包含
一.静态包含:包含的文件可以是jsp文件.html文件.文本文件或者一段java代码.<%@ include file="要包含的文件路径"%> 实质是先将所包含的文件 ...