Chinaunix首页 | 论坛 | 博客
  • 博客访问: 322713
  • 博文数量: 96
  • 博客积分: 230
  • 博客等级: 二等列兵
  • 技术积分: 722
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-13 22:25
个人简介

心安处即吾乡!

文章分类

全部博文(96)

文章存档

2016年(1)

2014年(79)

2013年(7)

2012年(9)

我的朋友

分类: Mysql/postgreSQL

2014-04-17 20:40:38

这两天准备研究下sphinx,发现会用到mysql主从,于是尝试着自己配置了下mysql主从服务器,在这做下笔记。

环境:
主机A:【IP】192.168.55.123【Mysql Version】5.1.49【OS】Ubuntu10.10
从机B:【IP】192.168.55.88  【Mysql Version】5.5.9  【OS】FreeBSD8.2
注意:本例中使用A做mysql主服务器,B做mysql从服务器,网上有朋友说:"从服务器mysql版本不能低于主服务器版本",这点尚未做验证。

第一步:建立用户,赋予从机权限,有多台从机,就执行多次
登录主机A
mysql>GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.55.88' IDENTIFIED BY '123456';

第二步:配置主机A的my.cnf文件,输入或者替换以下内容:
server-id = 1 #主机标识,整数
log-bin = /var/log/mysql/mysql-bin.log #确保此文件可写
read-only = 0 #主机,读写都允许
binglog-do-db = test #需要备份的数据库,多个写多行
binglog-ignore-db = mysql #不需要备份的数据库,多个写多行

第三步:配置从机B的my.cnf文件,输入或者替换以下内容:
server-id = 2
log-bin = /var/log/mysql-bin.log #FreeBSD上未有该文件,可手动建立并chown用户为mysql以确保此文件可写
master-host = 192.168.55.123
master-user = backup
master-pass = 123456
master-port = 3306
master-connect-retry = 60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)
replicate-do-db = test #只复制某个数据库
replicate-ignore-db = mysql #不复制某个数据库

第四步:同步数据库
有多种方法,此处用mysqldump导出A的数据库test为test.sql,然后在从机B上建立数据库test,并用mysqldump导入test.sql到test库中。

第五步:
重启A的mysql服务
service mysql restart或sudo /etc/init.d/mysql restart
重启B的mysql服务
service mysql-server restart

第六步:验证
在主机A中,msyql>show master status;
能看到大致这些内容:
+------------------+----------+--------------+------------------+
| File                     | Position  | Binlog_Do_DB| Binlog_Ignore_DB|
+------------------+----------+--------------+------------------+
| mysql-bin.000002|     1352  | test               | mysql                |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
在从机B中,mysql>show slave status;内容省略。

最后,在主机A中,做一些INSERT,UPDATE,DELETE操作,看看从机B中,是否已经被修改。
以下是其他人写的,我也做了参考:



阅读(1012) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~