Chinaunix首页 | 论坛 | 博客
  • 博客访问: 240174
  • 博文数量: 17
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 493
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-13 21:09
文章分类

全部博文(17)

文章存档

2010年(4)

2009年(7)

2008年(6)

我的朋友

分类: LINUX

2010-12-30 19:14:47

一、环境

A: 192.168.0.1(主数据库)

B: 192.168.0.2(从数据库)

二、设置主服务器A

1.vim /etc/my.cnf

server-id = 1

log-bin = /home/mysql/log/mysql-bin

max_binlog_size = 1073741824

binlog-ignore-db=mysql

binlog-do-db=cactidb

 

2.重启数据库

binlog-do-db=需要备份的数据库名,如果备份多个数据库,重复设置这个选项。

binlog-ignore-db=不需要备份的数据库名,如果有多个数据库,重复设置这个选项。

注意:主库的server-id必须为1。

 

 

配置同步权限:

在主服务器A上为从服务器B建立一个用户:

mysql>GRANT REPLICATION SLAVE ON *.* TO backup@'192.168.0.2' IDENTIFIED by 'backuppass';

这个权限表示,这个backup账号只能由从备份机192.168.0.2访问只能用来进行备份操作

二、设置从服务器B

1. vim /etc/my.cnf

server-id=2

relay_log = /home/mysql/log/mysql-relay-bin

max_relay_log_size = 1073741824

replicate_do_db=cactidb

replicate-ignore-table=cactidb.settings

eplicate-ignore-table=cactidb.poller
replicate-ignore-table=cactidb.poller_command
replicate-ignore-table=cactidb.poller_output
replicate-ignore-table=cactidb.poller_reindex
replicate-ignore-table=cactidb.poller_time

 

2.重启数据库

 

replicate-do-db=要同步的数据库,如果备份多个数据库,重复设置这个选项。

replicate-ignore-table=不同步的表,如果有多个表,重复设置这个选项。

注意:如果有多个从库,从库的server-id不能相同

三、将主库数据导入从库

第一步,导出主库A

1锁表:

mysql>flush tables with read lock;

2记住日志文件( File)和日志位置(Position

mysql>show master status;

  | File             | Position |

  | mysql-bin.000037 | 68870589 |

3导出数据库:mysqldump cactidb > cactidb.sql

4解锁:

mysql>unlock tables

 

第二步,导入从库B

1、导入数据库:mysql cactidb < cactidb.sql

2、停止同步:mysql>slave stop

3、设置同步信息:

mysql>CHANGE MASTER TO
  MASTER_HOST='192.168.0.1',
  MASTER_USER='backup',
  MASTER_PASSWORD='backuppass',
  MASTER_PORT=3306,
  MASTER_LOG_FILE=mysql-bin.000037',
  MASTER_LOG_POS=68870589,
  MASTER_CONNECT_RETRY=10;

 

这么多参数,很难记住吧,不用记,用以下命令可以搞定

mysql>help change master to;

四、验证主从同步是否成功

登录从服务器B,输入如下命令:

mysql> show slave status\G;

会得到类似下面的列表:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

 

Slave_IO_Running:为No,则说明IO_THREAD没有启动,请执行slave start Slave_SQL_Running:为No,则复制出错,查看Last_error字段排除错误后执行slave start

 

查看Slave_IO_State字段
空:复制没有启动
Connecting to master:没有连接上master
Waiting for master to send event:已经连上

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

chinaunix网友2010-12-31 19:06:14

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com