mysql的主从同步

mysql的主从同步

前言

在配置mysql的主从同步之前,你必须确定两台mysql的版本一定要一致。

下面是我搭建的运行环境:

  1. mysql版本:mysql-5.6.26 (https://download.csdn.net/download/qq_31403321/10330047)
  2. 操作系统:Centos 6.6
  3. 虚拟机:VMware Workstation 14 Pro 14.1.1 build-7528167

开始

首先先准备两台数据库服务器,我使用的是虚拟机做实验的。

这2台虚拟机,分别的数据版本一定是要一致的,也可以不一致,但是觉得不能比Master数据库版本低,毕竟官网推荐要一致,否则会出现某些问题。

不知道搭建数据库的可以看我的另外一篇博客:https://blog.csdn.net/qq_31403321/article/details/79832292

主从配置的注意点

  • 主从服务器操作系统版本和位数一致
  • Master 和 Slave 数据库的版本要一致
  • Master 和 Slave 数据库中的数据要一致
  • Master 开启二进制日志,Master 和 Slave 的 server_id 在局域网内必须唯一

来源于网络

配置Master数据库

修改数据库配置

在主数据库中输入命令:vi /etc/my.cnf,来编辑数据库配置

在数据配置中,加入以下配置项:

## 设置 server_id,一般设置为 IP
server_id=129
#不需要备份的数据库,不输出(mysql 库一般不同步)
binlog-ignore-db=mysql
#开启二进制日志功能,可以随便取,最好有含义
log-bin=edu-mysql-bin
#为每个 session 分配的内存,在事务过程中用来存储二进制日志的缓存
binlog_cache_size=1M
#主从复制的格式(mixed,statement,row,默认格式是 statement)
binlog_format=mixed
#二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。
expire_logs_days=7
#跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断。
## 如:1062 错误是指一些主键重复,1032 错误是因为主从数据库数据不一致
slave_skip_errors=1062

重启mysql服务器:service mysql restart

为从机配置用户

竟然要关联到数据同步,那么肯定是需要数据库的账号和密码的,我们进入数据库中,配置下从机的账号和密码吧

1.创建数据同步用户,并授予相应的权限

 grant replication slave, replication client on *.* to '账号'@'192.168.239.130' identified by
'密码';

账号@后面的是从机的地址,表示这个账号只能在这个ip中使用

2.刷新授权表信息

 flush privileges;

配置Slave数据库

修改mysql配置

/etc/my.inf修改改文件,在 [mysqld] 中增加以下配置项:

server_id=130
binlog-ignore-db=mysql
log-bin=edu-mysql-slave1-bin
binlog_cache_size = 1M
binlog_format=mixed
expire_logs_days=7
slave_skip_errors=1062
relay_log=edu-mysql-relay-bin
log_slave_updates=1
read_only=1

具体的参数,可以百度。配置完成后也要重启mysql服务器:service mysql restart

配置mysql数据库

1.切换到主数据库服务器中,并进入数据库,查询以下语句:show master status;

记住 FilePosition字段中的值

2.切换到从服务器中的数据库。执行下面的sql语句:

change master to master_host='主数据库的ip', master_user='你在主服务器上配置的账号',
master_password='你在主服务器上配置的密码', master_port=3306, master_log_file='刚刚File字段的值',
master_log_pos=刚刚Position字段的值, master_connect_retry=30;

启动同步

执行上面的语句后,在执行start slave,即可。

怎么查看是否执行成功?

执行start slave后,在执行show slave status\G;,如果和下图一样,有2个yes,即成功,少一个都不行。

如果有两个yes,那么恭喜你同步已经完成了。

温馨提示

从数据库只有读的权限,并没有插入数据的权限,如果需要插入数据请在主数据中插入,最后从数据库会自动同步过来。

常用的命令

关于数据库的:

  • 重启服务:service mysql restart

关于同步的:

  • 开启同步:start slave
  • 关闭同步:stop slave
  • 重置同步:reset slave
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值