MySQL复制技术:主从

在MySQL里面建立最基本的复制,可以总结为以下三个步骤:

1. 配置一个服务器作为Master;

2. 配置一个服务器作为Slave;

3. 将Slave连接到Master.

1) 配置Master

1. my.cnf中参数的配置

将服务器配置为Master。要确保该服务器有一个活动的二进制日志(binary log)和唯一的服务器ID.

a. 要是Master上面的日志没有删除过的话,二进制日志记录了Master上面的所有改变,这些日志在Slave上面重新执行就好了。

b. 服务器ID用于区分服务器

创建二进制日志和服务器ID 都是在my.cnf里面设置的

其他的参数在这里就不展示了

log-bin = /data/mysql/log/vm1-bin.log

log-bin-index =/data/mysql/log/master-bin.index

server-id = 1

log-bin选项 给出了二进制日志产生的所有文件的基本名(默认值是 主机名-bin);log-bin-index选项给出了二进制索引文件的文件名,大家都知道这个是所有二进制文件的列表。

每一个服务器都有一个唯一的 server-id

就按照上面的配置重启服务 mysqld service restart 使得参数生效。

2.在master上面创建复制用户 并且赋予权限

例如:

create user repuser;

grant replication slave on *.* to repuseridentified by 'aa12AA,.';

2) 配置Slave

1. my.cnf中参数的配置

relay-log-index = /data/mysql/log/vm2-slave-bin.index

relay-log=/data/mysql/log/vm2-slave-bin.log

server-id = 2

relay-log-index 选项是中继日志索引文件,relay-log选项是中继日志文件名。

2.重启服务 使得参数生效。

3) 连接Master和Slave

首先找到Master的服务器信息 1.主机名 2.端口号(master的 my.cnf里面有) 3.Master上拥有replicationslave 权限的账号和密码(比如我们刚才建立的reply_user)

在slave上面执行建立连接的语句:

change master to

master_host ='192.168.12.181',

master_port = 3306,

master_user = 'repuser',

master_password = 'aa12AA,.';

-- 启动复制

start slave ;

-- 查看复制的状态

show slave status\G;