您的位置:首页 > 数据库 > MySQL

MySQL High Availability总结(三) 配置Slave

2016-01-14 22:07 363 查看
Slave的配置和master配置很相似,不过也有不同之处。另外需要注意,如果你使用的不是一台服务器多个实例的话,在配置从服务器的时候依然需要对各个Slave执行第一小节中写的编译、安装和配置,这里就不再赘述。配置Slave分为四个步骤:

1、 配置relay-log。

2、 配置server-id。

3、 执行change master to。

4、 启动slave。

接下来详细说明四个步骤。

1、 relay-log用于配置存储从master和slave之间请求的二进制日志,前缀,与master的log-bin一样,也会产生多分文件,relay-log的值就是这些文件的前缀,如:slave-relay-bin.000001。relay-log=slave-relay-bin位于配置文件中的[mysqld]下。同log-bin一样也需要配置索引文件,relay-log-index=slave-relay-bin.index。



2、 配置server-id=2,标示该实例为slave。当然后续如果需要加入更多的从设备,server-id依次扩展为3、4…



在这里由于我是一台服务器多个实例,所以需要修改端口、socket文件等配置,然后保存退出。

3、 使用mysqld_safe启动从库(启动方式在说明master如何配置时有写)。登录到从库执行:

change master to master_user=’rep_user’,master_port=3310,master_host=’127.0.0.1’,master_password=’mysql123’;


change master to告诉了slave从库使用master_user指定的用户和master_password指定的用户密码以及master_host指定主机和master_port指定的端口去连接master主库。



4、 使用

start slave;


启动从库。



通过

show slave status\G


来显示从库的状态。如果在_ERROR字段中没有任何报错证明复制配置成功。



在master中执行

create database test_rep;


然后在slave上

show databases;


就可以查看到slave中已经有了test_rep。



另外可以对比master和slave上的二进制文件的位置来验证复制是否成功。Replaction是通过二进制日志文件进行复制的。每次master中执行一句DDL或DML语句都会启动两根线程,一根把数据操作写入文件系统,一根把语句写入二进制日志文件,日志文件的文件指针自然会进行偏移操作。所以在master上执行

show master status\G


会返回当前master写入的二进制日志文件名以及文件指针的位置。记录File和Position的值。



接下来在slave上执行

show slave status\G


可以看到在查看从状态时就显示了主设备的日志文件名:Master_Log_File以及读写文件指针位置:Read_Master_Log_Pos代表了当前master读取的文件指针位置,Exec_Master_Log_Pos代表了当前master正在写入的文件指针位置。这与上面记录的master中的文件位置是相同的。Slave也正是根据这个来进行复制的。注意如果master的log pos与slave上的不同,是无法复制成功的。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: