日期:2014-05-16  浏览次数:20742 次

windows下Mysql master-slave

假设安装过一个Mysql
1.先安装2个Mysql 其实也就是复制一个Mysql (Mysql5.1? 和 Mysql5.2)
2.修改端口号和安装地址(my.ini) 这里我们不使用默认端口3306 主要测试
?

?

  Mysql5.1
  [client]
  port=3307
  [mysqld]
  port=3307
  basedir="E:/Mysql5.1/"
  datadir="E:/Mysql5.1/Data/"

  Mysql5.2
  [client]
  port=3308
  [mysqld]
  port=3308
  basedir="E:/Mysql5.2/"
  datadir="E:/Mysql5.2/Data/"


3.在Master(Mysql5.1)的数据库中建立一个备份帐户,命令如下
?

?

GRANT REPLICATION SLAVE ON *.* TO 'slave'@'localhost' IDENTIFIED BY '123456';



4.Master 为Mysql5.1 修改如下(my.ini):?
?

?

[mysqld]
  #Master start
  #日志输出地址 主要同步使用
  log-bin=E:\Mysql5.1\Data\log-bin.log
  #同步数据库
  binlog-do-db=cnb
  #主机id 不能和从机id重复
  server-id=1 
  #Master end


5.Slave 为Mysql5.2 修改如下(my.ini):
?

[mysqld]
  #Slave start
  log-bin=E:\Mysql5.2\Data\log-bin.log
  #从机id,区别于主机id
  server-id=2
  #主机ip,供从机连接主机用
  master-host=localhost
  #主机端口
  master-port=3307
  #刚才为从机复制主机数据新建的账号
  master-user=slave 
  #刚才为从机复制主机数据新建的密码
  master-password=123456
  #重试间隔时间10秒
  master-connect-retry=10 
  #需要同步的数据库
  replicate-do-db=cnb
  #启用从库日志,这样可以进行链式复制
  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

6.查询当前主机数据库文件和位置
? mysql> show master status;
? +----------------+----------+--------------+------------------+
? | File?????????? | Position | Binlog_Do_DB | Binlog_Ignore_DB |
? +----------------+----------+--------------+------------------+
? | log-bin.000001 |?????? 98 | cnb????????? |????????????????? |
? +----------------+----------+--------------+------------------+

6.数据库操作测试如下为在Master(Mysql5.1)端操作 然后查看Slave(Mysql5.2)?
?

  1. create?databse?cnb;??
  2. ????
  3. ??CREATE?TABLE?`users`?(??
  4. ?????`id`?bigint(20)?NOT?NULL?auto_increment,??
  5. ?????`name`?varchar(255)?default?NULL,??
  6. ?????PRIMARY?KEY??(`id`)??
  7. ??)?ENGINE=InnoDB?DEFAULT?CHARSET=utf8;??
  8. ??
  9. ??insert?users(name)?values('jacky');?