一、创建并授权用户
在每一台(主)服务器上创建一个用户,并为之授权,使它们可以互相访问彼此的数据库
在Server-1上:
创建一个充许Server-2来访问的用户server2,密码为:server2
mysql> GRANT REPLICATION SLAVE ON *.*
> TO ‘server2’@’192.168.0.2’ IDENTIFIED BY ‘server2’;
在Server-2上:
创建一个充许Server-1来访问的用户server1,密码为:server1
mysql> GRANT REPLICATION SLAVE ON *.*
> TO ‘server1’@’192.168.0.1’ IDENTIFIED BY ‘server1’;
编者注:最好整成同一个用户和同一个密码!!
二、修改MySQL主配置文件
在MySQL的主配置文件中修改/添加如下内容:
Server-1上:
[mysqld]
server-id = 10
log-bin = mysql-bin
replicate-do-db = mydb
auto-increment-increment = 2
# service mysqld restart
注:二者只有server-id不同和 auto-increment- offset不同
auto-increment-offset是用来设定数据库中自动增长的起点的,因为这两台服务器都设定了同一个自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突
replicate-do-db 指定同步的数据库,我们只在两台服务器间同步mydb数据库
另:auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2
三、复制其中一台服务器的数据库到另外一台服务器
这一步中谁做为源数据不重要,重要的是在正式的复制(Replication)开始之前两台服务都能准确的反应彼此的数据。
我们可以先从源数据库中导出数据到备份文件,这里我们使用mysqldump命令
以Server-1上数据库为源数据库
备份数据前先锁表,保证数据一致性
mysql> FLUSH TABLES WITH READ LOCK;
> SHOW MASTER STATUS;
+—————–+————+—————-+——————–+
|File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+—————–+————+—————-+——————–+
|mysql-bin.000006 | 213 | | |
+—————–+————+—————-+——————–+
该结果显示,源服务器现在处于6号二进制文件的213位置
开始备份数据库
# mysqldump –user=root -p mydb > /tmp/mydb.sql
备份完毕,现在可以解锁数据库表
mysql> UNLOCK TABLES;
Query OK, 0 rows affected (0.00 sec)
四、将备份数据导入Server-2
先在Server-2上创建一个与mydb同名的空数据库
# mysql
> CREATE DATABASE mydb;
>\q
# scp 192.168.0.1:/tmp/mydb.sql ./
# mysql -uroot -p mydb < /tmp/mydb.sql
此时,我们需要注意当前服务器的二进制日志的位置
# mysql
> LOCK TALBES WITH READ LOCK;
> SHOW MASTER STATUS;
+—————–+————+—————-+——————–+
|File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+—————–+————+—————-+——————–+
|mysql-bin.000001 | 106 | | |
+—————–+————+—————-+——————–+
1 row in set (0.00 sec)
> UNLOCK TABLES;
五、互相通告二进制日志位置
在Server-1上:
# mysql
> CHANGE MASTER TO
> MASTER_HOST=’192.168.0.2′,
> MASTER_USER=’server1′, //???
> MASTER_PASSWORD=’server1′,
> MASTER_LOG_FILE=’mysql-bin.000001′,
> MASTER_LOG_POS=106;
在Server-2上:
# mysql
> CHANGE MASTER TO
> MASTER_HOST=’192.168.0.1′,
> MASTER_USER=’server2′,
> MASTER_PASSWORD=’server2′,
> MASTER_LOG_FILE=’mysql-bin.000006′,
> MASTER_LOG_POS=213;
六、启动复制(Replication)功能
在两台主机上分别执行
# mysql
> START SLAVE;
配置到此完成!

MySQL主主复制3的更多相关文章

  1. mysql+mycat搭建稳定高可用集群,负载均衡,主备复制,读写分离

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了 ...

  2. mysql数据库主从及主主复制配置演示

    实验系统:CentOS 6.6_x86_64 实验前提:提前准备好编译环境,防火墙和selinux都关闭 实验说明:本实验共有2台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 实验拓 ...

  3. MySQL复制环境(主从/主主)部署总结性梳理

    Mysql复制概念说明Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves) ...

  4. MySQL数据的主从复制、半同步复制和主主复制详解

    一.MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费 ...

  5. MySQL主主复制

    MySQL5. 主主复制 环境如下: CentOS6.4_64 MySQL5. master1:192.168.10.11 master2:192.168.10.12 1.1 配置 master1 a ...

  6. 【MySQL】主备复制

    复制对于mysql的重要性不言而喻,mysql集群的负载均衡,读写分离和高可用都是基于复制实现.下文主要从4个方面展开,mysql的异步复制,半同步复制和并行复制,最后会简单聊下第三方复制工具.由于生 ...

  7. mysql主主复制(双主复制)配置步骤

    以前我们介绍的都是主从复制,这里给各位介绍一个双主复制了,下面都希望两个主服务器数据自动复制的话可参考一下此文章.   MySQL主主复制结构区别于主从复制结构.在主主复制结构中,两台服务器的任何一台 ...

  8. mysql主从复制 主主复制 读写分离

    首先是mysql的主从复制很简单 主主复制也就是互相主从最麻烦的最难的就是日志恢复,增量恢复什么的比较复杂 首先如果你不会安装mysql版本最好一样,或者往上的版本,因为mysql是向下兼容 请注意不 ...

  9. MYSQL的主从和主主复制模式

    一.复制介绍 MySQL支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这些日志可以记录 ...

随机推荐

  1. Match:Oulipo(POJ 3461)

     Oulipo 题目大意:给你一个字符串,要你找到字符串包含指定子串的个数 只要你知道了KMP,这一题简直不要太简单,注意STL的string是会超时的,还是乖乖用char吧 #include < ...

  2. Ubuntu jsp平台使用JDBC来连接MySQL数据库

    Ubuntu 7.04 搭建Ubuntu jsp平台开发环境MySQL+tomcat+apache+j2sdk1.6在所有安装开始前先在Terminal中输入 rpm -q -a查看是否安装过rpm ...

  3. Silverlight 动画性能

    通过几个配置可以提高动画性能: Desired Frame Rate 在WEB项目中配置: <div id="silverlightControlHost"> < ...

  4. 【python】lxml处理命名空间

    有如下xml <A xmlns="http://This/is/a/namespace"> <B>dataB1</B> <B>dat ...

  5. java 500/404错误总结

    404是路径错误,简单的说就是你的页面找不到后台执行它的代码(未找到服务端代码)500最常见的就是你的编程语言语法错误导致的(服务端代码报错)

  6. sql的优化相关问题

    这篇文章写的真心不错,值得仔细拜读,所以将其转载过来了. 一.             分析阶段 一 般来说,在系统分析阶段往往有太多需要关注的地方,系统各种功能性.可用性.可靠性.安全性需求往往吸引 ...

  7. iOS中NSUserDefaults详解

    NSUserDefault 作为iOS中一种轻量级数据本地化方式,简单易用,经常用于存储一些应用相关属性记录,例如图书app的背景色,进度,上次阅读的书籍及相关配置信息.NSUserDefault实质 ...

  8. cocospod 安装和使用 podfile 问题解决

    Podfile 不识别 usr_framework!,系本地Pods版本太低,要在0.36以上. 以下转自:http://blog.csdn.net/eqera/article/details/393 ...

  9. NYOJ之ASCII码排序

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsAAAAIFCAIAAABTaNy/AAAgAElEQVR4nO3dO1LjzMIG4H8T5CyEdF

  10. SQL SERVER 索引之聚集索引和非聚集索引的描述

    索引是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度. 索引包含由表或视图中的一列或多列生成的键. 这些键存储在一个结构(B 树)中,使 SQL Server 可以快速有效地查找与键值关 ...