MySQL建立双向主备复制server配置方法

1、环境描写叙述

  serverA(主) 192.85.1.175

  serverB(从) 192.85.1.176

  Mysql版本号:5.1.61

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

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

2. 创建同步用户:

在服务B命令行运行 :

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

在serverA命令行运行:

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

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

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

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

mysql> show grants for 'replication'@'%';
+--------------------------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected]%                                                                                                             |
+--------------------------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, FILE, REPLICATION SLAVE ON *.* TO 'replication'@'%' IDENTIFIED BY PASSWORD '*47E2485DF0DBED84B9BD90AF25F48A36E7EAD57E' |
+--------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

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

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

ERROR 2003 (HY000): Can't connect to MySQL server on '192.85.1.175' (111)
[email protected]:/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)
ERROR 2003 (HY000): Can't connect to MySQL server on '192.85.1.176' (111)
[email protected]:/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}加入例如以下行

#mysql replication
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
master-host = 192.85.1.176
master-user = replication
master-password = mysqlsync
master-port = 3306
master-connect-retry = 60
binlog-do-db = hrkip_zhhwd
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = phpmyadmin
replicate-do-db = hrkip_zhhwd
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}加入例如以下行

#mysql replication
server-id = 2
log_bin = /var/log/mysql/mysql-bin.log
master-host = 192.85.1.175
master-user = replication
master-password = mysqlsync
master-port = 3306
master-connect-retry = 60
binlog-do-db = hrkip_zhhwd
binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = phpmyadmin
replicate-do-db = hrkip_zhhwd
replicate-ignore-db = mysql,information_schema 

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

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

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

查看slave 状态 ,运行命令:

mysql> show slave status \G ;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.85.1.175
                  Master_User: replication
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 106
               Relay_Log_File: ubutun-relay-bin.000005
                Relay_Log_Pos: 251
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: hrkip_zhhwd
          Replicate_Ignore_DB: mysql,information_schema
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 106
              Relay_Log_Space: 552
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
1 row in set (0.00 sec)

ERROR:
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数据中插入

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

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

相同在serverB中插入 :

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

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

測试OK 。

时间: 2024-08-04 22:05:06

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

MySQL建立双向主备复制服务器配置方法

1.环境描述 服务器A(主) 192.85.1.175 服务器B(从) 192.85.1.176 Mysql版本:5.1.61 系统版本:System OS:ubuntu 10.10 X86 (系统安装及数据环境搭建,省略) 2. 创建同步用户: 在服务B命令行执行 : grant replication slave on *.* to 'replication'@'%' identified by 'mysqlsync'; flush privileges; grant FILE,SELECT

mysql主备复制搭建(使用mysqld_muti)

这里我使用单台服务器上的两个mysql实例进行搭建,主要用到了mysql自带的mysqld_multi 一.复制原理 开始搭建前有个mysql复制原理的基础知识需要补充: mysql进行主备复制使用到了三个线程: 1.主库上的转存储线程: 会将mysql server提交的事务写入到二进制文件中,这个二进制文件就叫做binlog. 2.备库上的连接线程: 备库启动后,负责和主库通信,读取binlog,同时,将binlog存储进自己的一个叫中继日志的relaylog中. 3.备库上的relaylo

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

主要思路 测试环境 实现mysql主备复制 配置A主mysql 配置B备mysql 验证同步配置结果 验证是否同步 关闭B备mysql的同步,验证读写分离 实现读写分离 安装mycat 配置mycat 启动mycat 测试读写分离 验证是否同步 关闭B备mysql的同步,验证读写分离 数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了常用的读写分离方式,

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

数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了常用的读写分离方式,推荐mycat,社区活跃,性能稳定. 测试环境 MYSQL版本:Server version: 5.5.53,到官网可以下载WINDWOS安装包. 注意:确保mysql版本为5.5以后,以前版本主备同步配置方式不同. linux实现思路类似,修改my.cnf即可. A主mysql.19

keepalived实现对mysql主从复制的主备自动切换

备注:君子性非议也,善假于物也. 温故而知新,可以为师矣. 使用MySQL+keepalived是一种非常好的解决方案,在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台 MySQL数据的一致性,然后用keepalived实现虚拟IP,通过keepalived自带的服务监控功能来实现MySQL故障时自动切换. 实验环境中用两台主机搭建了一个mysql主从复制的环境,两台机器分别安装了keepalived,用一个虚IP实现mysql服务器的主备自动切换功能. 模拟环境: VIP:1

MYSQL主备复制结构搭建

1 选择两个服务器,分别作为主备数据库 2 登陆到服务器, yum install mysql ; yum install mysql-server; 3 启动服务器 service  mysqld start 4 分别root登陆mysql 执行如下命令,增加复制用户并授权(主备都在192.168.119.*网段,为了方便主备切换,两边都建立) GRANT  REPLICATION SLAVE,REPLICATION CLIENT on *.* to [email protected]'192

【RabbitMQ】7、RabbitMQ主备复制是异步还是同步?

转自:https://yq.aliyun.com/articles/73040?spm=5176.100240.searchblog.116.RcXYdl 我们知道RabbitMQ可以配置成Queue做主从复制(按照官方的说法叫配置mirror queue),对master queue的写操作会被复制到其他slave上去(也就是复制到mirror queue上去).这对rabbitmq的这个特性,有些人会问这样的问题,rabbitmq的主从复制是同步的还是异步的? 为什么有些人会问这个问题那?主

MySQL 主从复制(实时热备)原理与配置

MySQL是现在普遍使用的数据库,但是如果宕机了必然会造成数据丢失.为了保证MySQL数据库的可靠性,就要会一些提高可靠性的技术.MySQL主从复制可以做到实时热备数据.本文介绍MySQL主从复制原理及其配置过程. 术语:主从复制——master slave replication(M-S模式). 用途 备份 读写分离 高可用和故障切换(需要做HA) MySQL升级测试 原理 实际上,它的原理思路很简单.MySQL 中有一种日志叫做 bin 日志(二进制日志),这个日志会记录下所有修改了数据库的

Redis主备复制

Redis 支持 Master-Slave(主从)模式,Redis Server 可以设置为另一个 Redis Server 的主机(从机),从机定期从主机拿数据.特殊的,一个从机同样可以设置为一个 Redis Server 的主机,这样一来 Master-Slave 的分布看起来就是一个有向无环图,形成 Redis Server 集群,无论是主机还是从机都是 Redis Server,都可以提供服务. 在配置后,主机Master可负责读写服务,从机Slave只负责读.Redis 提高这种配置方