MYSQL主从同步设置

一、mysql5.6进行主从同步设置(附生产环境主从同步设置)

1. 环境:已经安装好了mysql5.6版本的两台主机
master server:192.168.110.109
slave server:192.168.110.115
原理:
在这里插入图片描述
2.准备工作
(1)关闭防火墙:systemctl stop firewalld
(2)关闭selinux
(3)配置固定ip地址
(4)修改主机名:master与slave

3.master server设置

修改配置文件

# vim /etc/my.cnf
#[mysqld]
log-bin=binlog   #开启二进制日志
server-id=1        #指定服务id

重新启动服务

systemctl restart mysql
#如果没有配置系统路径启动mysql,可以按下面绝对路径开启mysql
#/usr/local/mysql/bin/mysqladmin -uroot -p shutdown  
#/usr/local/mysql/bin/mysqld_safe  --user=mysql &

查看端口是否被启动

netstat -tulnp | grep 3306

服务重启后查看二进制文件是否已经被打开

mysql> show variables like 'log_bin';

在这里插入图片描述

授权一个账户供slave复制数据

grant replication slave on *.* to 'cym'@'192.168.110.%' identified by 'gz123';

4.slave server设置

修改配置文件(注意是从库的my.cnf)

# vim /etc/my.cnf
# [mysqld]        
 server-id=2    #保证和主服务器不一样

重启mysql服务

systemctl restart mysql

5.配置从库连接到主库

在主库master查看二进制文件的位置

mysql> show master status\G

在这里插入图片描述
来到从库slave内的数据库进行下面的语句

#使用help change master to查看帮助命令
mysql> help change master to

找到这里的例子
在这里插入图片描述
这里解释一下各部分内容:
CHANGE MASTER TO
MASTER_HOST=‘master2.mycompany.com’, #master地址,也就是我们需要到哪去取数据
MASTER_USER=‘replication’, #用户名,在master里授权用来读数据的用户名
MASTER_PASSWORD=‘bigs3cret’, #密码,在master里授权用来读数据的用户的密码
MASTER_PORT=3306, #数据库端口,默认3306
MASTER_LOG_FILE=‘master2-bin.001’, #二进制文件名称,如果有重启数据库,注意查看是否是新的的二进制文件
MASTER_LOG_POS=4,#起始位置,从二进制文件哪里开始同步
MASTER_CONNECT_RETRY=10; #连接重试,10s重试一次,可以采用默认值

在slave里进行change master to

CHANGE MASTER TO MASTER_HOST='192.168.110.109',MASTER_USER='cym',MASTER_PASSWORD=                                                                      'gz123',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=1103;

开启从机

mysql> start slave;

最后来查看一下主从状态
在这里插入图片描述
自此,主从同步配置完成,下面介绍生产环境下的主从配置

二、生产环境下的主从配置

原因: 生产环境下,数据库无时无刻不在进行读写内容,如果停止数据库的运行来进行主从配置,会丢失很多数据。因此,这里的主从配置需要在主库master时刻在读写的情况下,进行主从同步的配置。
环境:
master 192.168.110.109 —时刻在进行数据的读写
slave 192.168.110.115 —一台新主机,进行主从同步配置
步骤:
1.先将master主机进行数据库的全备;
2.再将master的数据库全备文件拷贝到slave;
3.将master的数据库全备文件写入slave
4.将slave与master进行同步

1.进行master主机的数据库全备份

#--master-data可以让生成的配置文件,给出备份时二进制日志使用的文件以及备份的截止位置
mysqldump -uroot -p -A --master-data > /opt/all.sql

在这里插入图片描述
也可以在备份文件直接搜索我们需要的信息

awk '/^CHANGE/' /opt/all.sql

2.将master的全备数据库文件拷贝到slave上

scp /opt/all.sql  root@192.168.110.115:/root

3.将备份文件写入slave数据库

mysql -uroot -p < all.sql

4.进入到数据库里查看是否被写入
在这里插入图片描述
5.进行主从同步

后面的配置就跟前面的部分一样了,先对slave进行change to

mysql> CHANGE MASTER TO MASTER_HOST='192.168.110.109',MASTER_USER='cym',MASTER_PASSWORD=                                                                      'gz123',MASTER_LOG_FILE='binlog.000001',MASTER_LOG_POS=1103;

开启从机

mysql> start slave;

配置完成后,从库slave即可以同步master的数据了
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值