wudi

博客园 首页 新随笔 联系 订阅 管理

(转)


很久前搞过了,有点忘了,重新配一下,巩固巩固,呵呵!

M-S使用的单向,异步的复制方法。而Cluster采用的是无共享的系统中部署内存中数据库的簇。

M-S 是概念上的“同步”,而Cluster是真正意义上的同步,MySQLCluster是类似与DB2的无共享集群,易于扩展。

这里讲讲Master-Slave模式,以Windows下安装为例:

1.分别在两台机上安装MySQL数据库.

master:  192.168.2.14   

slave:     192.168.2.8

2.在master上建立要同步的数据库,如testdb.

打开my.ini文件,在最后面添加如下内容后重启服务。(linux下my.cnf)

server-id=1
binlog-do-db=testdb
log-bin=mysql-bin

3.在slave上同样建立testdb。

(网上有的说建立之后反而报错,但是我发现好像一开始还是需要建立库和表结构的,之后才会同步数据

莫非版本不同?我这是用的是MySQL5.0.x, 详情可参考数据库安装目录下data/机器名.err文件)

打开my.ini文件,在最后面添加如下内容后重启服务。

server-id=2
master-host=192.168.2.14
master-user=root
master-password=root
master-port=3306
replicate-do-db=testdb

4.在master上赋一下权限

grant all on *.* to root@'192.168.2.8' identified by 'root'

5.查询下状态

master:   show master stutas;

slave   :   show slave stutas;

参考资料:

http://blog.myspace.cn/e/404626452.htm

http://java221.javaeye.com/blog/686284

http://www.javaeye.com/topic/829371

http://www.javaeye.com/topic/171427

http://database.51cto.com/art/201006/205858.htm

http://hi.baidu.com/fairywood/blog/item/f9a26213a3e2eb886438db3c.html

http://blog.163.com/dandanhjj@126/blog/static/162586077201032602631133/ 

下面是一个关于MySQL 5.1下配置的网页:

http://www.zhuoda.org/lunzi/114670.html

1、一台机器上装了两个版本不同的mysql数据库来实现,5.1版本做master,5.0的版本做slave来实现主从备份。

2、5.1端口用的3307,5.0端口用的3308.

在Master(Mysql5.1)的数据库中建立一个备份帐户,命令如下 
  
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'localhost' IDENTIFIED BY '654321';


3、Master 为Mysql5.1 修改如下(my.ini): 
加在文件的最后就可以,

[mysqld]
  #Master start
  #日志输出地址 主要同步使用 
  log-bin=C:/ProgramData/MySQL/MySQL Server 5.1/Data/log-bin.log
  #同步数据库
  binlog-do-db=test
  #主机id 不能和从机id重复
  server-id=1 
  #Master end

4、.Slave 为Mysql5.0 修改如下(my.ini): 
同样把下列代码加到文件的底部即可,


[mysqld]
  #Slave start
  log-bin=D:/Program Files/MySQL/MySQL Server 5.0/Data/log-bin.log
  #从机id,区别于主机id
  server-id=2
  #主机ip,供从机连接主机用
  master-host=localhost
  #主机端口
  master-port=3307
  #刚才为从机复制主机数据新建的账号
  master-user=slave 
  #刚才为从机复制主机数据新建的密码
  master-password=654321
  #重试间隔时间10秒
  master-connect-retry=10 
  #需要同步的数据库
  replicate-do-db=test
  #启用从库日志,这样可以进行链式复制
  log-slave-updates
  #从库是否只读,0表示可读写,1表示只读
  read-only=1

  #只复制某个表
  #replicate-do-table=tablename                 
  #只复制某些表(可用匹配符)
  #replicate-wild-do-table=tablename%
  #只复制某个库
  #replicate-do-db=dbname
  #不复制某个表
  #replicate-ignore-table=tablename
  #不复制某些表
  #replicate-wild-ignore-table=tablename%
  #不复制某个库
  #replicate-ignore-db=dbname
  #Slave end
5、查询当前主机数据库文件和位置 
show master status; 

6、


use test;
  
  CREATE TABLE `users` (
     `id` bigint(20) NOT NULL auto_increment,
     `name` varchar(255) default NULL,
     PRIMARY KEY  (`id`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  insert users(name) values('jacky');


测试ok,可以正常工作。

下面是Master-Master模式的安装资料:

http://blog.csdn.net/yueliangdao0608/archive/2008/10/29/3173231.aspx

http://www.javaeye.com/topic/162717

posted on 2011-03-14 16:29  菜鸟吴迪  阅读(823)  评论(1编辑  收藏  举报