1、环境描写叙述

  serverA(主) 192.85.1.175

  serverB(从) 192.85.1.176

  Mysql版本号:5.1.61

系统版本号:System OS:ubuntu 10.10 X86

(系统安装及数据环境搭建,省略)

2. 创建同步用户:

在服务B命令行运行 :

  1. grant replication slave on *.* to 'replication'@'%' identified by 'mysqlsync';
  2. flush privileges;
  3. grant FILE,SELECT, replication slave on *.* to 'replication'@'192.85.1.175' identified by 'mysqlsync';
  4. flush privileges;

在serverA命令行运行:

  1. grant replication slave on *.* to 'replication'@'%' identified by 'mysqlsync';
  2. flush privileges;
  3. grant FILE,SELECT, replication slave on *.* to 'replication'@'192.85.1.176' identified by 'mysqlsync';
  4. flush privileges;

在A与Bserver上检查主备复制账号是否正常:

(1)分别在A与Bserver上的MYSQL命令行运行 “  show grants for 'replication'@'%';”

假设输出结果类似于例如以下,表示正常,其它均为异常

  1. mysql> show grants for 'replication'@'%';
  2. +--------------------------------------------------------------------------------------------------------------------------------------+
  3. | Grants for replication@% |
  4. +--------------------------------------------------------------------------------------------------------------------------------------+
  5. | GRANT SELECT, FILE, REPLICATION SLAVE ON *.* TO 'replication'@'%' IDENTIFIED BY PASSWORD '*47E2485DF0DBED84B9BD90AF25F48A36E7EAD57E' |
  6. +--------------------------------------------------------------------------------------------------------------------------------------+
  7. 1 row in set (0.00 sec)

(2)使用主备复制账号在Aserver远程登录B ,在Bserver远程登录A ,測试 ,假设能够正常登录说明,账号正常,能够使用。

假设出现例如以下错误信息:

  1. ERROR 2003 (HY000): Can't connect to MySQL server on '192.85.1.175' (111)
  2. sxzichen@ubutun:/var/log/mysql$ ERROR 2003 (HY000): Can't connect to MySQL server on '192.85.1.175' (111) ERROR 2003 (HY000): Can't connect to MySQL server on '192.85.1.175' (111)
  1. ERROR 2003 (HY000): Can't connect to MySQL server on '192.85.1.176' (111)
  2. sxzichen@ubutun:/var/log/mysql$ ERROR 2003 (HY000): Can't connect to MySQL server on '192.85.1.176' (111) ERROR 2003 (HY000): Can't connect to MySQL server on '192.85.1.176' (111)

导致原因是,MYSQL数据库不同意远程訪问,须要分别改动A与Bserver 中数据库配置文件my.cnf  ,凝视掉 “   bind-address           = 127.0.0.1 ” 即为 “#bind-address           = 127.0.0.1”

分别又一次启动MYSQLserver ,測试正常

3.配置数据主切换 之serverA ,改动其相应的数据配置文件----my.cnf ,在 [MYSQLD}加入例如以下行

  1. #mysql replication
  2. server-id = 1
  3. log_bin = /var/log/mysql/mysql-bin.log
  4. master-host = 192.85.1.176
  5. master-user = replication
  6. master-password = mysqlsync
  7. master-port = 3306
  8. master-connect-retry = 60
  9. binlog-do-db = hrkip_zhhwd
  10. binlog-ignore-db = mysql
  11. binlog-ignore-db = information_schema
  12. binlog-ignore-db = phpmyadmin
  13. replicate-do-db = hrkip_zhhwd
  14. replicate-ignore-db = mysql,information_schema

配置信息简介:

server-id               = 1    #主机标示,整数

log_bin                 = /var/log/mysql/mysql-bin.log   #确保此文件可写

binlog-do-db         =hrkip_zhhwd   #须要备份数据,多个写多行

binlog-ignore-db    =mysql #不须要备份的数据库,多个写多行

master-user = replication   #远程登录数据库username称

master-password = mysqlsync #远程登录数据库用户密码

master-port = 3306 #远程数据库server端口号,能够使用 show variables like 'port'; 命令查看,必要与目标数据库server端口号一致

4.配置数据主切换 之serverB ,改动其相应的数据配置文件----my.cnf ,在 [MYSQLD}加入例如以下行

  1. #mysql replication
  2. server-id = 2
  3. log_bin = /var/log/mysql/mysql-bin.log
  4. master-host = 192.85.1.175
  5. master-user = replication
  6. master-password = mysqlsync
  7. master-port = 3306
  8. master-connect-retry = 60
  9. binlog-do-db = hrkip_zhhwd
  10. binlog-ignore-db = mysql
  11. binlog-ignore-db = information_schema
  12. binlog-ignore-db = phpmyadmin
  13. replicate-do-db = hrkip_zhhwd
  14. replicate-ignore-db = mysql,information_schema

5.检查配置是否正常(l两台server上分别检查):

启动 slave 服务 ,在MYSQL命令行运行

  1. mysql> slave start ;
  2. Query OK, 0 rows affected, 1 warning (0.00 sec)

查看slave 状态 ,运行命令:

  1. mysql> show slave status \G ;
  2. *************************** 1. row ***************************
  3. Slave_IO_State: Waiting for master to send event
  4. Master_Host: 192.85.1.175
  5. Master_User: replication
  6. Master_Port: 3306
  7. Connect_Retry: 60
  8. Master_Log_File: mysql-bin.000002
  9. Read_Master_Log_Pos: 106
  10. Relay_Log_File: ubutun-relay-bin.000005
  11. Relay_Log_Pos: 251
  12. Relay_Master_Log_File: mysql-bin.000002
  13. Slave_IO_Running: Yes
  14. Slave_SQL_Running: Yes
  15. Replicate_Do_DB: hrkip_zhhwd
  16. Replicate_Ignore_DB: mysql,information_schema
  17. Replicate_Do_Table:
  18. Replicate_Ignore_Table:
  19. Replicate_Wild_Do_Table:
  20. Replicate_Wild_Ignore_Table:
  21. Last_Errno: 0
  22. Last_Error:
  23. Skip_Counter: 0
  24. Exec_Master_Log_Pos: 106
  25. Relay_Log_Space: 552
  26. Until_Condition: None
  27. Until_Log_File:
  28. Until_Log_Pos: 0
  29. Master_SSL_Allowed: No
  30. Master_SSL_CA_File:
  31. Master_SSL_CA_Path:
  32. Master_SSL_Cert:
  33. Master_SSL_Cipher:
  34. Master_SSL_Key:
  35. Seconds_Behind_Master: 0
  36. Master_SSL_Verify_Server_Cert: No
  37. Last_IO_Errno: 0
  38. Last_IO_Error:
  39. Last_SQL_Errno: 0
  40. Last_SQL_Error:
  41. 1 row in set (0.00 sec)
  42.  
  43. ERROR:
  44. No query specified

假设须要又一次启动slave server,首先 运行 slave stop  ,再运行 reset  slave , 删除  MYSQL 数据库相应的my.cnf 文件里log_bin文件夹( /var/log/mysql/ )下的"  mysql-bin."开头的全部文件,之后又一次启动MYSQL服务,之后再运行slave start 命令 。

6.进行測试,主备是否正常工作,slave 启动时,两个server上都启动,启动后不要任意关闭再重新启动,比如在serverA上启动后。

在serverA数据中插入

  1. INSERT INTO ddgl_qdlx ( qdlxmc, lxjc, qdlxbz) VALUES
  2. ('175a', '75a', '175a');

在serverB中能够看到相应的记录 。

相同在serverB中插入 :

  1. INSERT INTO ddgl_qdlx (qdlx_id, qdlxmc, lxjc, qdlxbz) VALUES
  2. ( '176b', '76b', '176b') ;

在serverA中能够看到相应的记录 。

測试OK 。

MySQL建立双向主备复制server配置方法的更多相关文章

  1. MySQL备份与主备配置

    MySQL备份与主备配置 数据备份类型 全量备份:备份整个数据库 增量备份:备份自上一次备份以来(增量或完全)以来变化的数据 差异备份:备份自上一次完全备份以来变化的数据 全量备份 全量备份的方法有 ...

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

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

  3. MySQL主备复制原理、实现及异常处理

    复制概述 MySQL支持三种复制方式:基于行(Row)的复制.基于语句(Statement)的复制和混合类型(Mixed)的复制. 基于语句的复制早在3.23版本中就存在,而基于行的复制方式在5.1版 ...

  4. keepalived主备节点都配置vip,vip切换异常案例分析

    原文地址:http://blog.51cto.com/13599730/2161622 参考地址:https://blog.csdn.net/qq_14940627/article/details/7 ...

  5. 分布式Redis主备复制

    当数据落在不同节点上时,如何保证数据节点之间的一致性是非常关键的 Redis采用主备复制的方式保证一致性,所有节点中,只有一个节点为主节点(master),它对外提供写服务,然后异步的将数据复制到其他 ...

  6. 干货 | SSMS客户端连接京东云RDS SQL Server配置方法

    干货 | SSMS客户端连接京东云RDS SQL Server配置方法 原创: 于振江 京东云开发者社区  微软SQL Server, Oracle数据库以及MySQL系列占据了关系型数据库市场的绝对 ...

  7. 【MySQL】主备复制

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

  8. 24 mysql怎么保证主备一致

    Mysql主备的基本原理 在状态1中,客户端直接访问节点A,而节点B只是备库,只是将A的binlog全部同步过来并应用到本地,这样可以保持节点B和节点A的数据是相同的. 当需要切换的时候,就变成状态2 ...

  9. redis配置主从备份以及主备切换方案配置

    前提:redis中,主从切换场景中,没有绝对的主和从,只有初始化的主和从,然后当主down后,从就变成主了,而主即使连接上,也是从,不会变为主 1.redis-server的主备关系: 需要配置的机器 ...

随机推荐

  1. HDU4825 Xor Sum(贪心+Trie树)

    Problem Description Zeus 和 Prometheus 做了一个游戏,Prometheus 给 Zeus 一个集合,集合中包含了N个正整数,随后 Prometheus 将向 Zeu ...

  2. 解决sublime text3配置Python3编译环境:运行代码时提示“NO Build System”

    只需要在路径中把单杠换成双杠,重启sublime即可.

  3. 二、Docker基础操作

    原文:二.Docker基础操作 一.下载镜像 命令:docker pull xxxxxx(镜像名) docker pull training/weapp 二.运行镜像 docker run -d -P ...

  4. sqlite3-查看数据库

    在做android开发的时候,有时候我们需要查看系统下的数据库,这时候我们可以使用下面的方法 1.数据库存放位置 data/data/package/databases/abc.db 2.导出数据库 ...

  5. HTML基础第六讲---表格

    转自:https://i.cnblogs.com/posts?categoryid=1121494 上一讲,讲了关于<控制表格及其表项的对齐方式>,在这里我要讲讲表格及其属性 ,然后大家在 ...

  6. Vue使用Promise自定义confirm确认框组件

    使用Promise模拟浏览器确认框,可自定义标题,内容,按钮文字和类型 参数名 类型 说明 title String 标题 content String 内容 yesBtnText String 确认 ...

  7. Monkey (压力测试)-移动端手机压力测试工具 monkey以及monkeyrunner

    4. Monkey (压力测试) 这个是Android提供的系统工具.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey测试是一种 ...

  8. Java基础学习总结(53)——HTTPS 理论详解与实践

    前言 在进行 HTTP 通信时,信息可能会监听.服务器或客户端身份伪装等安全问题,HTTPS 则能有效解决这些问题.在使用原始的HTTP连接的时候,因为服务器与用户之间是直接进行的明文传输,导致了用户 ...

  9. Java Web学习总结(12)——使用Session防止表单重复提交

    在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 一.表单重复提 ...

  10. win7管理工具不可用

    看看这个路径的文件夹是否还在C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools如果有缺失的文件夹就自己新 ...