免费注册 查看新帖 |

Chinaunix

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

MySQL 主从复制 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-01 10:55 |只看该作者 |倒序浏览
mysql的安装过程比较简单,这里略过

1.在maste主机上,配置my.cnf
在[mysqld]配置段添加如下字段中增加

log-bin=mysql-bin.log
binlog-do-db=blog #要同步的数据库的名字
binlog-do-db=index #要同步的数据库的名字

server-id=1


重启mysql


#service mysqld restart
进入mysql中


#mysql -u root -ppassword
增加同步帐号

mysql>grant replication slave on *.* to 'repication'@'%' identified by 'password';
mysql>use database;
mysql>flush tables with read lock;
mysql>show master status:



---------------------------------------------------------------------
| File             | Position | Binlog_Do_DB     | Binlog_Ignore_DB |
+------------------+----------+------------------+------------------+
| mysql-bin.000002 |      1448 | blog,index   |                  |
+------------------+----------+------------------+------------------+

此时不要关闭此终端!
记住上表前两个字段的信息 mysql-bin.000002 和 1448 。
另开一个终端:

拿到主数据库上的“数据库快照”


#tar -czvf database.tar.gz /data/database


切换到上一个终端
mysql>unlock tables; #解锁,让主数据库192.168.1.10上的数据库正常更新

2.配置slave数据库

首先创建数据库


#mysql -uroot -ppassword
mysql>create database databasename #建一个与主服务器的数据库名字相同的数据库
mysql>exit;



3.在两个从数据库的[mysqld]配置段添加如下字段中增加


# 192.168.1.11
server-id=2
master-host=192.168.1.10
master-user=replication
master-password=password
master-connect-retry=60
replicate-do-db=blog
replicate-do-db=index




#192.168.1.12
server-id=3
master-host=192.168.1.10
master-user=replication
master-password=password
master-connect-retry=60
replicate-do-db=blog
replicate-do-db=index


3.分别重启两个数据库

#service mysqld restart


4.分别进入两个从数据库中

在salve2上

#mysql -uroot -ppassword
mysql>slave stop;
> CHANGE MASTER TO
> MASTER_HOST='192.168.1.10',
> MASTER_USER='replication',
> MASTER_PASSWORD='password',
> MASTER_LOG_FILE='mysql-bin.000002',
> MASTER_LOG_POS=1448;

MYSQL>START SLAVE;  



在salve2上

#mysql -uroot -ppassword
mysql>slave stop;
> CHANGE MASTER TO
> MASTER_HOST='192.168.1.10',
> MASTER_USER='replication',
> MASTER_PASSWORD='password',
> MASTER_LOG_FILE='mysql-bin.000002',
> MASTER_LOG_POS=1448;

MYSQL>START SLAVE;  

在slave端 :

mysql> show processlist;
+----+-------------+-----------+------+---------+------------+-----------------------------------------------------------------------+------------------+
| Id | User        | Host      | db   | Command | Time       | State                                                                 | Info             |
+----+-------------+-----------+------+---------+------------+-----------------------------------------------------------------------+------------------+
|  4 | system user |           | NULL | Connect |         48 | Waiting for master to send event                                      | NULL             |
|  5 | system user |           | NULL | Connect | 4294923022 | Has read all relay log; waiting for the slave I/O thread to update it | NULL             |
|  6 | root        | localhost | NULL | Query   |          0 | NULL                                                                  | show processlist |
+----+-------------+-----------+------+---------+------------+----------------------------------------------------------
以上信息表示同步成功!

4.同步测试过程
分别在主数据库上建立一个表,插入一条数据
在两个从数据库上看看是否更新
过程略。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP