在mysql里面建立最基本的复制,可以总结为以下三个步骤:
1. 配置一个服务器作为Master;
2. 配置一个服务器作为Slave;
3. 将Slave连接到Master.
配置Master:
1. my.cnf中参数的配置
将服务器配置为Master。要确保该服务器有一个活动的二进制日志(binary log) 和唯一的服务器ID.
a. 要是Master上面的日志没有删除过的话,二进制日志记录了Master上面的所有改变,这些日志在Slave上面重新执行就好了。
b. 服务器ID用于区分服务器
创建二进制日志和服务器ID 都是在my.cnf里面设置的
其他的参数在这里就不展示了
log-bin = master_bin
log-bin-index = master-bin.index
server-id = 1
log-bin选项 给出了二进制日志产生的所有文件的基本名(默认值是 主机名-bin);log-bin-index选项给出了二进制索引文件的文件名,大家都知道这个是所有二进制文件的列表。
每一个服务器都有一个唯一的 server-id
就按照上面的配置 重启服务 mysqld service restart 使得参数生效。
2.在master上面创建复制用户 并且赋予权限
例如:
create user reply_user;
grant reolication slave on *.* to reply_user identified by 'mypassword';
配置Slave
1. my.cnf中参数的配置
relay-log-index = slave-replay-bin.index
relay-log = slave-relay-bin
server-id = 2
relay-log-index 选项是中继日志索引文件 ,relay-log选项是中继日志文件名。
重启服务 使得参数生效。
连接Master和Slave
首先找到Master的服务器信息 1.主机名 2.端口号(master的 my.cnf里面有) 3.Master上拥有replication slave 权限的账号和密码 (比如我们刚才建立的reply_user)
在slave上面执行建立连接的语句:
change master to
master_host = 'master_hostname',
master_port = 3306,
master_user = 'reply_user',
master_password = 'mypassword';
-- 启动复制
start slave ;
-- 查看复制的状态
show slave status\G;