centos mysql单向同步,虚拟机下实现Centos5.6下Mysql双向同步配置

环境

注意虚拟机环境下的NAT模式,务必把IP设置成固定的

Master操作系统:Centos 5.6

Ip:192.168.214.138

Slave操作系统:Centos 5.6

Ip:192.168.214.137

根据安装方法的不同,数据库相关路径也不太一致,我用YUM安装,因些,数据库存放路径/var/lib/mysql,数据库配置文件路径/usr/share/mysql,数据库相关命令/usr/bin.

查看主库服务器/usr/share/mysql目录下的cnf文件

/usr/share/mysql/*.cnf

其中.cnf文档如下:

my-small.cnf     内存少于或等于64M,只提供很少数据库服务

my-medium.cnf   内存在32M-64M之间而且和其他服务一起使用,如web

my-large.cnf      内存在512M主要提供数据库服务

my-huge.cnf      内存在1G-2G,主要提供数据库服务

my-innodb-heavy-4G.cnf   内存有4G,主要提供较大负载数据库服务(一般服务器使用这个)

复制文件到/etc下并更名为my.cnf

cp /usr/share/mysql/my-large.cnf  /etc/my.cnf

***Master端***

进入mysql,创建一个数据库wing

Mysql>create database wing;

创建一个用来同步的用户,指定只能在192.168.214.137登录

Mysql>grant replication slave on *.* toidentified by '123456';

打开my.cnf,并添加如下字段

vi /etc/my.cnf

server-id = 1

以下内容直接加在server-id = 1下面即可

log-bin=mysql-bin

binlog-do-db = wing    //需要同步的数据库,如果没有本行,即表示同步所有数据库

master-host = 192.168.214.137

master-user = wing

master-password = 123456

master-port = 3306

master-connect-retry = 10

replicate-do-db = wing  //需要接收的数据库,如有多个数据库,每个数据库一行

binlog-ignore-db = mysql

重启master机的mysql服务

Service mysqld restart

进入mysql,执行

Mysql>slave start;

***Slave端***

进入mysql,创建一个数据库wing

Mysql>create database wing;

创建一个用来同步的用户,指定只能在192.168.214.138登录

Mysql>grant replication slave on *.* toidentified by '123456';

打开my.cnf,并添加如下字段

Vi /etc/my.cnf

其中把Server-id = 1注释掉

Server-id = 2

以下内容直接加在server-id = 2下面即可

log-bin=mysql-bin *****注意此处****它在后面会经常使用的

Binlog-do-db = wing

Master-host = 192.168.214.138

Master-user = wing

Master-password = 123456

Master-port = 3306

Master-connect-retry = 10

Replcate-do-db = wing  //需要接收的数据库,如有多个数据库,每个数据库一行

binlog-ignore-db = mysql

然后重启slave机的mysql

Service mysqld restart

在slaves机中进入mysql

Mysql>start slave;

****关键步骤****

把两台服务器上需要同步的数据库进行拷贝,保证这两台数据库初始状态一致

进行双向同步

双向同步就是把单向同步反过来在做一遍,但一定要注意操作顺序,这是成功的关键。

在master服务器上进入mysql

mysql> show master status;

+------------+----------+--------------+------------------+

| File            | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------+----------+--------------+------------------+

| mysql-bin.000010 |  98    | wing         |    mysql        |

+------------+----------+--------------+------------------+

1 row in set (0.00 sec)

记录下log.000010和98

在slave服务器上执行

mysql> stop slave;

Query OK, 0 rows affected (0.00 sec)

输入如下命令:

mysql> change master to

-> master_host = '192.168.214.138',

-> master_user = 'wing',

-> master_password = '123456',

-> master_log_file = 'mysql-bin.000010',

-> master_log_pos = 98;

Query OK, 0 rows affected (0.00 sec)

mysql> start slave;                 //开始同步

Query OK, 0 rows affected (0.00 sec)

在slave服务器上进入mysql

mysql> show master status;

+------------+----------+--------------+------------------+

| File       | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------+----------+--------------+------------------+

| mysql-bin.000009 |  98 | wing      |    mysql         |

+------------+----------+--------------+------------------+

1 row in set (0.00 sec)

记录下mysql-bin.000009和98

在master服务器上执行

mysql> stop slave;

Query OK, 0 rows affected (0.00 sec)

输入如下命令:

mysql> change master to

-> master_host = '192.168.214.137',

-> master_user = 'wing',

-> master_password = '123456',

-> master_log_file = 'mysql-bin.000009',

-> master_log_pos = 98;

Query OK, 0 rows affected (0.00 sec)

mysql> start slave;                 //开始同步

Query OK, 0 rows affected (0.00 sec)

下面进行测试。

在slave机器数据库上查看:

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.214.138

Master_User: wing

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000010

Read_Master_Log_Pos: 98

Relay_Log_File: mysqld-relay-bin.000015

Relay_Log_Pos: 235

Relay_Master_Log_File: mysql-bin.000010

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB: wing

Replicate_Ignore_DB:

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: 98

Relay_Log_Space: 235

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

1 row in set (0.01 sec)

ERROR:

No query specified

在master机器数据库上查看:

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.214.137

Master_User: wing

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000009

Read_Master_Log_Pos: 98

Relay_Log_File: mysqld-relay-bin.000015

Relay_Log_Pos: 235

Relay_Master_Log_File: mysql-bin.000009

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB: wing

Replicate_Ignore_DB:

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: 98

Relay_Log_Space: 235

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

1 row in set (0.00 sec)

ERROR:

No query specified

在salve和master数据库中进入wing分别创建enkjsalve,enkj两个表 ,两表会实时更新数据库信息。

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| test               |

|wing|

+--------------------+

4 rows in set (0.06 sec)

mysql> use wing;

Database changed

mysql> show tables;

+----------------+

| Tables_in_wing |

+----------------+

| enkj           |

| enkjsalve|

+----------------+

2 rows in set (0.00 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值