设置MySQL复制最好的方式

[attach]1277[/attach] 如上图案例,在Centos5 版本的系统的2台服务器上安装了Mysql5。假设服务器Server1是Mysql Master节点并且有一个叫db1的数据库,服务器Server2是Mysql Slave节点,并且什么数据库都没有。   在这个实例使用的变量如下:

Server1 IP=192.168.1.1 Server2 IP=192.168.1.2 Database name=db1 Replication user=replicator Replication user password=slavepass

首先我们配置服务器Server1,登录服务器并进行如下操作。   1、登录服务器Server1,编辑Mysql配置文件/etc/my.cnf,在[mysqld]下面添加如下配置:
[mysqld]
server-id=100
log-bin=master-bin
2、重启Mysql服务
service mysqld restart
3、创建用于Mysql Slave服务器连接Mysql Master复制用户
mysql> GRANT REPLICATION SLAVE on [i].[/i] to 'replicator'@'%' IDENTIFIED BY 'slavepass';
4、备份数据库,提供给Slave Server使用
mysqldump -u[root] -p[password] --master-data --single-transaction db1 > db1.sql
5、把备份出来的数据库文件通过网络或者移动存储设备传输到Slave Server。   接下来配置服务器Server2,确保Master Mysql备份数据库文件已经放置到Server2服务器上,我们把它放到/root目录下。   1、登录服务器Server2,编辑Mysql配置文件/etc/my.cnf,在[mysqld]下面添加如下配置:
[mysqld]
server-id=101
replicate-wild-do-table=db1.%
2、重启Mysql服务器
service mysqld restart
3、导入备份的数据库文件,并且开启Slave服务器复制进程
mysql> CREATE DATABASE db1;
mysql> USE db1;
mysql> SOURCE /root/db1.sql;
mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.1', MASTER_PORT=3306, MASTER_USER='replicator', MASTER_PASSWORD='slavepass';
mysql> START SLAVE;
4、检查Slave正常工作已否
mysql> SHOW SLAVE STATUS\G
确保你看到如下内容就好
***********************[i][b][/i] 1. row [/b]*************************
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上案例适合最初创建Mysql集群,如果有多个数据库,则需要从主库导入多个数据库数据到Slave服务器,然后开始做复制操作。   翻译原文:http://blog.secaserver.com/2011/06/the-best-way-to-setup-mysq-replication/ 

0 个评论

要回复文章请先登录注册