Centos7系统下Mysql主从同步配置方案

前言

最近在做项目高可用时,需要使用数据同步。由于只有双节点,且采用主主同步可能存在循环同步的风险,故综合考虑采用Mysql主从同步(Master-Slave同步)。

可能没有接触过Mysql数据同步时,可能会觉得数据同步很难,但你按照如下操作一遍之后,会发现原来同步如此简单,毕竟我们只需要会配置,会排查问题,底层具体实现Mysql团队早帮忙实现了。

废话不多说,直入话题:

(1)首先,保证有两台设备(主、从),分别在两台设备上安装Mysql数据库。安装完成之后,

使用mysql -u[数据库用户名] -p[用户密码],若能够登陆mysql则表示安装成功。

(2)编辑mysql配置文件,路径一般为/etc/mysql/mysql.conf.d/mysqld.cnf(用户在安装Mysql时指定的目录,

如:/etc/my.conf等)。分别按要求在主、从mysql中的[mysqld]模块下添加如下内容:

   [mysqld]

  default-storage-engine=innodb

  innodb_file_per_table=1

  collation-server=uft8_general_ci

  init-connect='SET NAMES uft8'

  bind-address=0.0.0.0

  log_bin=mysql-bin

  relay_log=mysql-relay-bin

  expire_logs_days=100

  skip-slave-start=1

  binlog_do_db=[需要同步的数据库名称]

  binlog-ignore-db=mysql,sys,information_schema,performance_schema

  server-id=[主填写1,从填写2]

  auto-increment-increment=2

  auto-increment-offset=1

  open_files_limit=65535

  mac_connections=1000

  slave-skip-errors=all

(3)shell连接主、从服务器,mysql -u[数据库用户名] -p[用户密码],分别登录到主、从节点mysql,创建同步用户repl,执行如下命令:

  grant all privileges on *.* to 'repl'@'%' identified by 'repl' with grant option;

然后exit退出Mysql操作页,重新启动Mysql服务,命令如下:

  systemctl restart mysql.service

然后进入主节点Mysql,查看Mysql的File列和Positon列。执行命令:show master status;出现结果如下

(4)登录到从服务器,mysql -u[数据库用户名] -p[用户密码]进入Mysql,执行:

  stop slave;

  reset slave;

  change master to master_host='[主节点IP]',master_user='repl',master_password='repl',master_log_file='[mysql-bin.000001,参考(3)中的File列]',master_log_pos=[245,参考(3)中的Postion列];

  exit;

执行systemctl restart mysql.service重启Mysql服务。

(5)启动从服务器slave库,mysql -u[数据库用户名] -p[用户密码]进入从节点Mysql,执行如下命令:

  start slave;

执行:show slave status\G;查看备份服务状态。如果以下两个状态为Yes则表示主从同步成功。

接下来,大家就可以尝试向主数据库中插入一条数据,看是够从数据库中会自动增加该条数据,是不是有点小激动呢?赶紧测试下吧。

PS:若出现无法同步问题?

(1)请查看上图中Master_Log_File属性、Read_Master_Log_Pos属性与主节点查询结果是否一致。

(2)可能是从数据库连接主数据库超时,去吧连接延时改大一点吧。

(3)如果上述无法解决,请查看mysql日志排查原因。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

(0)

相关推荐

  • Mysql主从同步备份策略分享

    环境:主从服务器上的MySQL数据库版本同为5.1.34主机IP:192.168.0.1从机IP:192.168.0.2一. MySQL主服务器配置1.编辑配置文件/etc/my.cnf# 确保有如下行server-id = 1log-bin=mysql-binbinlog-do-db=mysql  #需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可binlog-ignore-db=mysql  #不需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可log-slave-up

  • MySQL主从同步、读写分离配置步骤

    现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master) 192.168.0.2 (Slave) MySQL Version:Ver 14.14 Distrib 5.1.48, for pc-linux-gnu (i686) using readline 5.1 1.登录Master服务器,修改my.cnf,添加如下内容: server-id = 1 //数据库ID号,

  • 详解Mysql主从同步配置实战

    1.Introduction 之前写过一篇文章:Mysql主从同步的原理. 相信看过这篇文章的童鞋,都摩拳擦掌,跃跃一试了吧? 今天我们就来一次mysql主从同步实战! 2.环境说明 os:ubuntu16.04 mysql:5.7.17 下面的实战演练,都是基于上面的环境.当然,其他环境也大同小异. 3.进入实战 工具 2台机器: master IP:192.168.33.22 slave  IP:192.168.33.33 master机器上的操作 1.更改配置文件 我们找到文件 /etc/

  • mysql主从同步复制错误解决一例

    蚊子今天下午搭了一主三从的mysql复制,结果所有服务器都配置好后,发现从上报如下的错误 复制代码 代码如下: Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-i

  • Mysql主从同步的实现原理

    1.什么是mysql主从同步? 当master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库. 2.主从同步有什么好处? 水平扩展数据库的负载能力. 容错,高可用.Failover(失败切换)/High Availability 数据备份. 3.主从同步的原理是什么? 首先我们来了解master-slave的体系结构. 如下图: 不管是delete.update.insert,还是创建函数.存储过程,所有的操作都在master上.当master有操作的时候,slave会快速的

  • 详解MySQL数据库设置主从同步的方法

    简介 MySQL主从同步是目前使用比较广泛的数据库架构,技术比较成熟,配置也不复杂,特别是对于负载比较大的网站,主从同步能够有效缓解数据库读写的压力. MySQL主从同步的机制: MySQL同步的流程大致如下: 1.主服务器(master)将变更事件(更新.删除.表结构改变等等)写入二进制日志(master log). 2.从服务器(slave)的IO线程从主服务器(binlog dump线程)获取二进制日志,并在本地保存一份自己的二进制日志(relay log) 3.从服务器的SQL线程读取本

  • linux下指定mysql数据库服务器主从同步的配置实例

    一. 概念: ① 数据库同步  (主从同步 --- 主数据库写的同时 往从服务器写数据)② 数据库同步  (主主同步 --- 两台数据库服务器互相写数据) 二. 举例数据库服务器(A) 主数据库   IP:192.168.1.134数据库服务器(B) 主数据库   IP:192.168.1.138两台服务器同步的用户名为: bravedu    密码: brave123 一.主数据库操作设置(A):① 创建同步用户名 允许连接的 用户IP地址  (非本机IP) 复制代码 代码如下: grant

  • windows环境下mysql数据库的主从同步备份步骤(单向同步)

    windows下mysql双向同步备份实现方法以下的文章主要讲述的是在windows环境下实现MySQL数据库的主从同步备份的正确操作方案,我在一些相关的网站看见关于windows环境下实现MySQL数据库的主从同步备份的操作步骤描述,但是很少有对其成功操作到底的,所以拿出此篇较为完整的方案与大家一起分享. 以下配置在本机上已经成功: 实现功能:A为主服务器,B为从服务器,初始状态时,A和B中的数据信息相同,当A中的数据发生变化时,B也跟着发生相应的变化,使得A和B的数据信息同步,达到备份的目的

  • MySQL 5.5主从同步设置笔记分享

    先修改Master(10.1.123.197)的 my.cnf 配置 在 [mysqld] 中新增以下内容: 复制代码 代码如下: log-bin=mysql-binlog-bin-index=mysql-bin.indexserver-id = 1sync_binlog=1binlog_format=mixed 然后指定要做同步的数据库,并忽略掉不需要做同步的数据库 复制代码 代码如下: binlog-do-db = testdbbinlog-ignore-db = mysqlbinlog-i

  • Shell脚本实现监控MySQL主从同步

    代码如下: 复制代码 代码如下: #!/bin/bash #check MySQL_Slave Status #crontab time 00:10 MYSQLPORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $4}'` MYSQLIP=`ifconfig eth0|grep "inet addr" | awk -F[:" "

随机推荐