欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

MYSQL数据库主主同步实战_MySQL

程序员文章站 2024-01-13 13:50:28
...
MYSQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环。当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后*并等待主服务器通知下一次更新。

  在实际项目中,两台分布于异地的主机上安装有MYSQL数据库,两台服务器互为主备,客户要求当其中一台机器出现故障时,另外一台能够接管服务器上的应用,这就需要两台数据库的数据要实时保持一致,在这里使用MYSQL的同步功能实现双机的同步复制。

  以下是操作实例:

  1、数据库同步设置

  主机操作系统:RedHat Enterprise Linux 5

  数据库版本:mysql Ver 14.12 Distrib 5.0.22

  前提:MYSQL数据库正常启动

  假设两台主机地址分别为:

  ServA:10.240.136.9

  ServB:10.240.136.149

  1.1 配置同步账号

  在ServA上增加一个ServB可以登录的帐号:

  Mysql>GRANT all privileges ON *.* TO tongbu@'10.240.136.149' IDENTIFIED BY '123456';

  在ServB上增加一个ServA可以登录的帐号:

  Mysql>GRANT all privileges ON *.* TO tongbu@'10.240.136.9' IDENTIFIED BY '123456';

  1.2 配置数据库参数

  1、 以root用户登录ServA,修改ServA的my.cnf文件

  vi /etc/my.cnf

  在[mysqld]的配置项中增加如下配置:

1 default-character-set=utf8
2
3   log-bin=mysql-bin
4
5   relay-log=relay-bin
6
7   relay-log-index=relay-bin-index
8
9   server-id=1
10
11   master-host=10.240.136.149
12
13   master-user=tongbu
14
15   master-password=123456
16
17   master-port=3306
18
19   master-connect-retry=30
20
21   binlog-do-db=umsdb
22
23   replicate-do-db=umsdb
24
25   replicate-ignore-table=umsdb.boco_tb_menu
26
27   replicate-ignore-table=umsdb.boco_tb_connect_log
28
29   replicate-ignore-table=umsdb.boco_tb_data_stat
30
31   replicate-ignore-table=umsdb.boco_tb_log_record
32
33   replicate-ignore-table=umsdb.boco_tb_workorder_record