ITPub博客

首页 > Linux操作系统 > Linux操作系统 > mysql replication

mysql replication

原创 Linux操作系统 作者:Kujasama 时间:2009-01-22 09:26:27 0 删除 编辑

文章分为两部分,分别介绍单纯的主从结构和链式的主从结构。

环境:

master端:
          IP:61.152.115.163
          MySQL版本:4.0.27

slave端:             
          IP:60.206.14.105
          MySQL版本:4.0.27

一、配置防火墙

master端的防火墙对slave端ip开放3306端口:

$iptables -A INPUT -p tcp --dport 3306 -s 60.206.14.105 -j ACCEPT

二、master端设置my.cnf参数

Master端:

###################################################
#replication settings  master
###################################################
log-bin                            //主机开log-bin模式,将执行语句记录在binlog中,以供slave端读取


server-id=1                    //服务器 id  每台之间一定不能一样,这是slave端判断执行语句来源的标签,只有slave端发现serverid和自己的不一样,才会执行读取到的sql。如果将主从的serverid配置的一样,你会在slave status中发现slave_io_running和slave_sql_running都是yes,但是复制的position是不动的。


binlog-do-db=forum2            //要同步复制的库名(如果不写,就默认为所有库)

replicate-do-table=db_name.tbl_name     //要同步复制的表名(因为有时只需要复制某几张表)
###################################################

注:如果是第一次做复制,改写my.cnf后,数据库服务要重启才会生效。

三、复制用户权限添加

在master端加数据库用户,用于复制

GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO kuja@'60.206.14.105' IDENTIFIED BY 'kuja';

四、复制库目录,记录position

确保主库上不再有任何流量,然后show master status记录下停止在哪个position。

如果不是生产系统的话就把mysql服务关掉。将库目录传到从库上,要记得把目录的用户组改为mysql,并注意权限。

五、slave端设置my.cnf参数

###################################################
#replication settings  slave
###################################################
server-id=2
master-host=60.206.14.102
master-user = kuja             //master端创建的replication用户
master-password = kuja
replicate-do-db = forum2
replicate-ignore-table=fun_card.querycardcheck     //整个库中可能有不需要同步的表,可以将它单独排除忽略掉。
###################################################

六、slave端加载同步信息

先重启下slave库的mysql服务,进mysql服务。

mysql> stop slave;

mysql> change master to master_host=61.152.115.163,
       master_user='rep',
       master_password='XXXXX',
       master_log_file='esales-db-bin.023',
       master_log_pos=664710343;

mysql> start slave;

 

-----------------------------------

在上一个主从关系中充当slave的60.206.14.105,在链式结构中将充当master。

那么就需要配置my.cnf了。

log-bin
log-slave-updates

这样作为slave的105的更新操作将会写二进制文件。然后重启数据库。

105上就能用show master status看到105作为master的信息了,这样就能同时作为主库了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13379967/viewspace-543065/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-10-21

  • 博文量
    11
  • 访问量
    92286