mysql互为主从
摘自:
http://flash520.blog.163.com/blog/static/3441447520101029114016823/
A B 为两台MySQL服务器,均开启二进制日志,数据库版本 5.5.2
一、服务器参数
[A 服务器]
server-id = 1
binlog-do-db = test
binlog-ignore-db = mysql
replicate-do-db = test
replicate-ignore-db = mysql
master-host = 192.168.1.100
master-user = backup
master-password = 123
master-port = 3306
master-connect-retry = 10
sync-binlog = 1
[B 服务器]
server-id = 2
binlog-do-db = test
binlog-ignore-db = mysql
replicate-do-db = test
replicate-ignore-db = mysql
master-host = 192.168.1.101
master-user = backup
master-password = 123
master-port = 3306
master-connect-retry = 10
sync-binlog = 1
二、操作步骤
# A B 服务器停止同步
STOP SLAVE;
# A B 服务器清空Master日志
RESET MASTER;
# A 服务器授权同步账户
GRANT REPLICATION SLAVE ON *.* TO 'backup'@'%' IDENTIFIED BY '123';
FLUSH PRIVILEGES;
# A B 服务器锁表(锁表状态下不能终止mysql进程,否则会失败)
FLUSH TABLES WITH READ LOCK;
# 如果使用SSH,需要重新开启,复制数据库文件。
tar -cvf /tmp/mysql-data.tar /usr/local/mysql/data
tar -xvf /tmp/mysql-data.tar /usr/local/mysql/data
# 查看 A 服务器主机状态(记录二进制开始文件,位置)
SHOW MASTER STATUS;
# B 服务器锁表(锁表状态下不能终止mysql进程,否则会失败)
FLUSH TABLES WITH READ LOCK;
# 修改 B 服务器配置
CHANGE MASTER TO MASTER_HOST='192.168.1.100',MASTER_USER='backup', MASTER_PASSWORD='123',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=107;
# 开启 B 服务器同步进程
START SLAVE;
# 查看 B 服务器同步状态是否正常
SHOW SLAVE STATUS;
# 查看 B 服务器主机(记录二进制开始文件,位置)
SHOW MASTER STATUS;
# 修改 A 服务器配置
CHANGE MASTER TO MASTER_HOST='192.168.1.101',MASTER_USER='backup',MASTER_PASSWORD='123',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=107;
# 开启 A 服务器同步进程
START SLAVE;
# 分别查看 A B 服务器同步状态,确定是否成功
SHOW SLAVE STATUS;SHOW MASTER STATUS;
# 解锁 A B 服务器
UNLOCK TABLES;
# 数据测试分别在 A B 服务器上创建表插入数据测试
USE test;
CREATE TABLE `test_aa` (
`id` int(10) unsigned NOT NULL auto_increment,
`string` varchar(30) NOT NULL DEFAULT '0',
`time` datetime NOT NULL DEFAULT '00-00-00 00:00:00',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
INSERT INTO `test_log_1` VALUES ('', 'test_1', NOW());
SELECT * FROM `test_log_1`;
CREATE DATABASE `test_db_1` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
注意:
1. 数据库目录下的master.info的内容会覆盖命令行或my.cnf中指定的部分选项,更改配置需删除master.info
2. my.cnf中的master配置在MySQL 6.0以后会取消,官方建议使用动态的CHANGE MASTER
3. 如果只指定ignore-db而不指定do-db。则创建数据库的操作也会同步。
互为同步配置实例:
1. A B 互为主从同步test, 不同步mysql:
两个数据库配置中均设置:binlog-do-db=test, binlog-ignore-db=mysql,replicate-do-db=test,replicate-ignore-db=mysql
2. A B 互为主从只同步test,不同步其他数据库,新创建的也不会同步
两个数据库配置中均设置:binlog-do-db=test,replicate-do-db=test
3. A B 互为主从不同步mysql, 同步其他数据库,譬如创建的新数据库也会同步
两个数据库配置中均设置:binlog-ignore-db=mysql,replicate-ignore-db=mysql
4. A B 互为主从同步所有数据库,包括新建的数据库
两个数据库配置中均不设置上述四项
mysql互为主从的更多相关文章
- mysql互为主从实战设置详解及自动化备份(Centos7.2)
mysql互为主从实战设置详解(Centos7.2) 第一步:mysql配置 my.cnf配置 服务器1 (10.89.10.90) [mysqld] server-id=1 log-bin=/ ...
- Keepalived与MySQL互为主从自动切换配置
为解决Mysql数据库单点问题,实现两台MySQL数据库互为主备,双向replication.当一Master出现问题,则将Slave切换为Master继续工作. 环境说明 系统版本:CentOS L ...
- KeepAlived+MySQL互为主从
http://blog.csdn.net/socho/article/details/51804720 解决Master单点问题,两台mysql互为主备,双向replication.当一master挂 ...
- Docker配置mysql互为主从
配置准备 两台机器 两台机器:A(193.168.10.101) B(193.168.10.102) 做好ssh免密登录 mysql大版本需要一致,小版本可忽略 并且两台机器已经安装好了docker ...
- MySql互为主从配置文件及配置方法
# Example MySQL config file for medium systems. # # This is for a system with little memory (32M - 6 ...
- mysql互为主从(双主)配置
环境: ubuntu18.04.2 mysql5.7.21 #创建mysql属组 groupadd mysql useradd -g mysql mysql #查看属组 tail /etc/passw ...
- Centos7源码安装mysql及读写分离,互为主从
Linux服务器 -源码安装mysql 及读写分离,互为主从 一.环境介绍: Linux版本: CentOS 7 64位 mysq版本: mysql-5.6.26 这是我安装时所使用的版本, ...
- Mysql主从复制的配置(双机互为主从)
目的: 让两台mysql服务器可以互为主从提供同步服务. 优点: 1. mysql的主从复制的主要优点是同步"备份", 在从机上的数据库就相当于一个(基本实时)备份库. 2. 在主 ...
- CentOS双机中Docker下安装Mysql并配置互为主从模式
CentOS双机中Docker下安装Mysql并配置互为主从模式 目录 1.搜索镜像... 1 2.拉取镜像... 1 3.绑定端口: 1 4.配置文件(修改/etc/mysql/my.cnf文件): ...
随机推荐
- django2 删除图片或其他
首先从数据库中获取图片的名称,然后拼接图片的物理地址,最后就是删除. # 物理删除图片 d = os.path.dirname(os.path.dirname(os.path.abspath(__fi ...
- WebGL编程指南案例解析之平移和旋转的矩阵实现
手写各种矩阵: //矩阵 var vShader = ` attribute vec4 a_Position; uniform mat4 u_xformMatrix; void main(){ gl_ ...
- 转:HTML5中的element.dataset
使用HTML5中的 element.dataset 操作自定义 data-* 数据: 不久之前我向大家展示了非常有用的classList API,它是一种HTML5里提供的原生的对页面元素的CSS类进 ...
- ASCII编码和Unicode编码的区别
链接: 计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了.Unicode标准也在不断发展,但最常用的是用两个字 ...
- Unity3D 发布APK安卓环境配置步骤、安装、教程(含Java/Android)(超全流程)
Unity3D安卓环境配置运行 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...
- HihoCoder - 1794:拼三角形 (状压DP)
描述 给定 n 根木棍,第 i 根长度为 ai 现在你想用他们拼成尽量多的面积大于 0 的三角形,要求每根木棍只能被用一次,且不能折断 请你求出最多能拼出几个 输入 第一行一个正整数 n 第二行 n ...
- Java8函数式编程学习笔记(初探)
编程语言的整个目的就在于操作值,要是按照历史上编程语言的传统,这些值被成为一等值,而编程语言中的其他结构也许有助于表示值的结构,但在程序执行期间不能传递,因此为二等值,比如方法和类等则是二等值,类可以 ...
- 第三周作业3——Bug Report
作业要求来自:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/957 要求1: 准备工作:利用老师提供的git 命令,批量pull所有 ...
- Anaconda+Tensorflow环境安装与配置
转载请注明出处:http://www.cnblogs.com/willnote/p/6746499.html Anaconda安装 在清华大学 TUNA 镜像源选择对应的操作系统与所需的Python版 ...
- python 取整
1.向下取整 向下取整直接用内建的 int() 函数即可: >>> a = 3.75 >>> int(a) 3 2.四舍五入 对数字进行四舍五入用 round() ...