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告诉了slave从库使用master_user指定的用户和master_password指定的用户密码以及master_host指定主机和master_port指定的端口去连接master主库。
4、 使用
启动从库。
通过
来显示从库的状态。如果在_ERROR字段中没有任何报错证明复制配置成功。
在master中执行
然后在slave上
就可以查看到slave中已经有了test_rep。
另外可以对比master和slave上的二进制文件的位置来验证复制是否成功。Replaction是通过二进制日志文件进行复制的。每次master中执行一句DDL或DML语句都会启动两根线程,一根把数据操作写入文件系统,一根把语句写入二进制日志文件,日志文件的文件指针自然会进行偏移操作。所以在master上执行
会返回当前master写入的二进制日志文件名以及文件指针的位置。记录File和Position的值。
接下来在slave上执行
可以看到在查看从状态时就显示了主设备的日志文件名:Master_Log_File以及读写文件指针位置:Read_Master_Log_Pos代表了当前master读取的文件指针位置,Exec_Master_Log_Pos代表了当前master正在写入的文件指针位置。这与上面记录的master中的文件位置是相同的。Slave也正是根据这个来进行复制的。注意如果master的log pos与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上的不同,是无法复制成功的。
相关文章推荐
- mysql分区表
- MYSQL SHOW VARIABLES简介
- mysql数据库锁的产生原因及解决办法
- mysql字符串函数
- mysql 数据库死锁原因及解决办法
- mysql 管理
- mysql5.7.9 zip achive
- MYSQL服务无法启动,提示信息1067解决办法
- mac MySql 数据库的完全卸载
- mysql特殊运算符
- Orchard MySql 修正版 下载
- 3--mysql学习笔记
- mysql日常管理命令
- 如何设置Mysql root权限
- mybatis连接mysql数据库实现的jdbc功能
- 启动mysql服务出现1067的异常
- (/var/lib/mysql/NeoKylin-CNVL.cs1cloud.internal.pid). [失败]
- mysql联合查询union
- mysql去重的最方便的两种方法
- 关于MySQL 的时间相加天数和时间作差的SQL