免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2357 | 回复: 2
打印 上一主题 下一主题

mysql复制实现双机热备 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-23 01:16 |只看该作者 |倒序浏览
环境:
master:192.168.161.221 centos6.0 x86_64 mysql5.5.15
slave:192.168.161.227  centos6.0 x86_64 mysql5.5.15
注:master 的mysql版本最好与 slave 保持一致

master:
登录master,新建一个测试库:
mysql> mysql -uroot -p

mysql> create database new;

创建一个同步用户,限定只能在192.168.161.227登录
mysql> grant replication slave on *.* to 'test1'@'192.168.161.227' identified by 'test1';

修改配置文件:
vim /etc/my.cnf
[mysqld]
server_id=1 #主机标识,整数
binlog-do-db=new  #需要备份的数据库,多个写多行
binlog-ignore-db=mysql  #不需要备份的数据库,多个写多行
log-bin=mysql-bin  #二进制日志文件,确保此文件可写
[msyqld_safe]
log-error=/data/mysql/log/mysqld.log #错误日志文件

重启服务
/etc/init.d/mysqld restart

mysql -uroot -p

mysql> show master status;



slave:
登录slave,新建一个测试库:
mysql> mysql -uroot -p

mysql> create database new;

修改配置文件:
[mysqld]
server_id=2 #从机标识,整数
log-bin=mysql-bin #二进制日志文件,确保此文件可写
replicate-do-db=new #要复制的数据库,多个写多行
replicate-ignore-db=mysql #不要复制的数据库,多个写多行


[msyqld_safe]
log-error=/data/mysql/log/mysqld.log

重启服务
/etc/init.d/mysqld restart

mysql> mysql -uroot -p

mysql> slave stop;

//master_log_file,master_log_pos的值通过 master端的 show master status 获得
mysql> change master to master_host='192.168.161.221',master_user='test1',master_password='test1',master_log_file='mysqlbin.000021',master_log_pos=107;
mysql>slave start





测试:
//在master端创建表,插入数据
master端:
mysql> use new;

mysql> create table xxx (id int(5),username varchar(20));

mysql> insert into xxx values(123,'hhhhh');


//slave端检测,如能检测到master端创建的表及插入的数据,则说明配置成功。
slave端:
msyql> use new;

mysql> show tables;

mysql> desc tables;

mysql> select * from xxx;





互为主从:

修改原slave端(192.168.161.227)配置:
vim /etc/my.cnf
[mysqld]
binlog-do-db=new
binlog-ignore-db=mysql

重启服务
/etc/init.d/mysqld restart




修改原master端(192.168.161.221)配置:
vim /etc/my.cnf
[mysqld]
replicate-do-db=new
replicate-ignore-db=mysql


重启服务
/etc/init.d/mysqld restart

mysql> mysql -uroot -p

mysql> slave stop;

//master_log_file,master_log_pos的值通过 show master status 获得
mysql> change master to

master_host='192.168.161.227',master_user='test1',master_password='test1',master_log_file='mysql-bin.000022',master_log_pos=107;
mysql>slave start


测试:
//在master(原slave)端创建表,插入数据
mysql> use new;

mysql> create table xxxx (id int(5),name varchar(20),price int(3));

mysql> insert into xxxx values(123,'aaaaa',1);


//slave(原master)端检测,如能检测到master(原master)端创建的表及插入的数据,则说明配置

成功。
msyql> use new;

mysql> show tables;

mysql> desc tables;

mysql> select * from xxxx;


至此:mysql双机热备配置完成

论坛徽章:
0
2 [报告]
发表于 2012-05-04 14:22 |只看该作者
按照你的文档配置下来没成功   

请指导

[msyqld_safe]
log-error=/data/mysql/log/mysqld.log
  这条起什么作用?

论坛徽章:
0
3 [报告]
发表于 2012-05-04 16:14 |只看该作者
回复 2# 814635331


    指定错误日志的路径,不过这样不能直接指定,可以注释掉,让mysql 默认
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP