mysql高级:主从复制
2016-06-22 22:38
387 查看
mysql主从复制 replication
复制原理:
1.master做更改数据操作(insert、update、delete)时,操作记录在binlog日志中。
2.slave读取master的binlog日志文件,分析并生成relaylog并将操作复制到salve。
实现步骤:
1.master服务器配置binlog
2.slave服务器配置relaylog
3.master授权slave账号,用来读取binlog权限
4.slave服务器用账号连接master服务器
实现:
1.编辑master服务器my.cnf文件 //同常在/etc/下
设置如下值:
# 服务器ID
server-id=101
# 声明2进制日志binlog的文件名 如下设置,生成后为mysql-bin.xxxx
bin-log=mysql-bin
# 二进制格式: mixd/row/statement
#
# row: 2进制记录磁盘变化
# statement: 2进制录制执行语句,如update...
# mixd: 以上两种混合
#
# 语句复杂而磁盘变化少,合适用row
# 语句简单而影响数据多(上万行),合适用statement
# 如没办法明确以上两种哪种更佳合适,用mix。 又系统根据语句来自动决定
binlog-format=mixd
查看日志文件:
show master status
# 记录下当前binlog文件名与指针位置,稍后设置slave服务器起始binlog文件时有用到
2.编辑slave服务器my.cnf文件 //同常在/etc/下
# slave服务器的二进制文件也建议打开,可以在特殊情况下回复数据用,也可以给slave的从服务器读取用。
设置如下值:
# 服务器ID
server-id=201
# 声明2进制relaylog日志的文件名 如下设置,生成后为relay-bin.xxxx
relay-log=mysql-relay
# 声明2进制binlog日志的文件名 如下设置,生成后为relay-bin.xxxx
log-bin=mysql-bin
binlog-format=mixd
3.master服务器授权用户用来给slave读取binlog日志
grant replication client,replication slave on *.* to binlog@192.168.1.% identified by 'binlog';
flush privileges;
4.slave服务器设置读取master服务器的用户
change master to
master_host='192.168.1.101'
master_user='binlog'
master_password='binlog'
master_log_file='mysql-bin.000001' // 当前binlog文件名
master_log_pos=348; // 当前binlog指针位置
5.重启master与slave服务器的mysql服务
service mysqld restart
6.查看slave服务器与master服务器连接状态是否正常
master服务器mysql终端执行
show slave status
# 如没有连接成功,请检查iptable
# 设置iptable后,先 rstop slave 关闭slave服务,之后再 start slave 启动slave服务
复制原理:
1.master做更改数据操作(insert、update、delete)时,操作记录在binlog日志中。
2.slave读取master的binlog日志文件,分析并生成relaylog并将操作复制到salve。
实现步骤:
1.master服务器配置binlog
2.slave服务器配置relaylog
3.master授权slave账号,用来读取binlog权限
4.slave服务器用账号连接master服务器
实现:
1.编辑master服务器my.cnf文件 //同常在/etc/下
设置如下值:
# 服务器ID
server-id=101
# 声明2进制日志binlog的文件名 如下设置,生成后为mysql-bin.xxxx
bin-log=mysql-bin
# 二进制格式: mixd/row/statement
#
# row: 2进制记录磁盘变化
# statement: 2进制录制执行语句,如update...
# mixd: 以上两种混合
#
# 语句复杂而磁盘变化少,合适用row
# 语句简单而影响数据多(上万行),合适用statement
# 如没办法明确以上两种哪种更佳合适,用mix。 又系统根据语句来自动决定
binlog-format=mixd
查看日志文件:
show master status
# 记录下当前binlog文件名与指针位置,稍后设置slave服务器起始binlog文件时有用到
2.编辑slave服务器my.cnf文件 //同常在/etc/下
# slave服务器的二进制文件也建议打开,可以在特殊情况下回复数据用,也可以给slave的从服务器读取用。
设置如下值:
# 服务器ID
server-id=201
# 声明2进制relaylog日志的文件名 如下设置,生成后为relay-bin.xxxx
relay-log=mysql-relay
# 声明2进制binlog日志的文件名 如下设置,生成后为relay-bin.xxxx
log-bin=mysql-bin
binlog-format=mixd
3.master服务器授权用户用来给slave读取binlog日志
grant replication client,replication slave on *.* to binlog@192.168.1.% identified by 'binlog';
flush privileges;
4.slave服务器设置读取master服务器的用户
change master to
master_host='192.168.1.101'
master_user='binlog'
master_password='binlog'
master_log_file='mysql-bin.000001' // 当前binlog文件名
master_log_pos=348; // 当前binlog指针位置
5.重启master与slave服务器的mysql服务
service mysqld restart
6.查看slave服务器与master服务器连接状态是否正常
master服务器mysql终端执行
show slave status
# 如没有连接成功,请检查iptable
# 设置iptable后,先 rstop slave 关闭slave服务,之后再 start slave 启动slave服务
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复