mysql多服务器的同步_【转】mysql多台服务器数据同步

/**

*@ Date         2010.09.13

*@ Author       狼

这两天在搞mysql 数据同步问题,这配置很繁琐。我这里用了两台机子做测试, 都是我本地的机子.分别是

主服务器

192.168.0.118

从服务器 192.168.0.187

1. 首先在 主从服务器分别创建数据库 backup_db和backup_table表作为测试

CREATE TABLE

`backup_table` (

`id` int(11) NOT NULL auto_increment,

`name`

varchar(20) character set utf8 NOT NULL,

`sex` varchar(2) character set

utf8 NOT NULL,

PRIMARY KEY  (`id`)

) ENGINE=InnoDB DEFAULT

CHARSET=latin1;

注意主从服务器数据库结构必须一致。否则出错.

2.在住服务器的mysql按照目录找到my.ini文件,打开这个文件在文件末尾加上如下代码

#主机器的my.cnf(或my.ini)中应该配置:

server-id=1 #表示主服务器

log-bin=e:\mysqlback\ #同步事件的日志记录文件

log-bin-index

=e:\mysqlback\master-log-bin.index

log-error =e:\mysqlback\master-error.log

#错误日志

binlog-do-db=backup_db #提供数据同步服务的数据库(这里是刚才创建的测试数据库)

3. 配置完主服务器后 打开从服务器的my.cnf(或my.ini)文件 在文件末尾加入 如下代码

server-id=2 #表示从服务器

master-host=192.168.0.118 #主机A的地址

master-user=testuser #主机A提供给B的用户,该用户中需要包括数据库backup_db的权限

master-password=testpwd #访问密码

master-port=3306 #端口,主机的MYSQL端口

master-connect-retry=60 #重试间隔60秒

replicate-do-db=backup_db #同步的数据库

4. 完成后,然后在主从服务器的cmd 里面打开mysql控制台  授权从服务器的testuser用户来主服务器同步资源的权限

主服务器执行

GRANT FILE ON *.* TO testuser@'192.168.0.187' IDENTIFIED BY 'testpwd'

从服务器执行

GRANT FILE ON *.* TO testuser@'192.168.0.118' IDENTIFIED BY 'testpwd'

5. 重启主从服务器的mysql

从服务器 mysql>slave start ;

主服务器执行 mysql>show master status;   结果如下

mysql> show master

status;

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

| File

| Position | Binlog_Do_DB | Binlog_Ignore_DB

|

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

| .000002

|      613 | backup_db    |

|

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

1 row in set

(0.00 sec)

从服务器

mysql>start slave;

mysql> show slave

status\G;

执行结果

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

***************************

Slave_IO_State:

Master_Host:

192.168.0.118

Master_User: testuser

Master_Port: 3306

Connect_Retry:

60

Master_Log_ mysql-bin.000016

Read_Master_Log_Pos: 173

Relay_Log_

mysqld-relay-bin.000002

Relay_Log_Pos: 98

Relay_Master_Log_

mysql-bin.000016

Slave_IO_Running: No

Slave_SQL_Running:Yes

...

执行结果 Slave_IO_Running 和 Slave_SQL_Running 必须为yes 如果你发现Slave_IO_Running: No

那么可能是权限问题

解决步骤:

mysql> show master

status;

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

|

File | Position | Binlog_Do_DB | Binlog_Ignore_DB

|

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

|

mysql-bin.000001 | 98 | | |

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

mysql>

slave stop;

mysql> change master to

Master_Log_File='mysql-bin.000001',Master_Log_Pos=98;

mysql> slave

start;

或者打开主从服务器的 phpmyadmin 找到testuser 用户 设置它们的权限 然后再分别重启,再到从服务器中mysql> show

slave status\G;

发现

Slave_IO_Running: Yes

Slave_SQL_Running:Yes

这时你在 主服务器的phpmyadmin 找到 backup_db 的 backup_table表 插入一条记录,

在到从服务器中看看这张表,发现多了一条记录 ,成功了!!!

http://blog.csdn.net/jayxujia123/archive/2010/09/15/5885220.aspx

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值