mysql的主从同步配置

  • mysql的主从同步,当主机和从机建立同步关系之后,主机的数据库所做出的修改会记录在binlog日志中,这个日志中存的其实是操作数据库的命令,并且带有编号。于是主机与从机之间就通过日志中带有编号的操作数据库的信息来同步主机与从机的数据库数据。
  • 在做主从同步的时候,最好保证主机与从机之间数据库版本是一致的。因为在做mysql主从同步主要需要mysqlbinlog这个mysql组件去解析主机产生的binlog日志,而 mysql5.5版本(包含5.5)以下的mysqlbinlog这个组件是3.2版本的,mysql5.6版本以上的mysqlbinlog组件是3.4版本的,因此会mysql5.5版本以下的和mysql5.6版本以上的在主从的时候会出现解析失败,错误提示主机或者从机的binlog日志损坏。

配置前准备

  • 设置允许远程连接到mysql 服务器

    • 登陆到mysql之后,做如下操作:
    • use mysql; # 使用mysql这个库
    • update user set host=’%’ where user=‘root’; # 允许任意主机连接

配置主机主库

  • 授权给从库数据库服务器

    • GRANT REPLICATION SLAVE ON . TO ‘从机用户’@‘从机ip’ identified by ‘从机密码’;
    • flush privileges; # 刷新一下权限
  • 修改主机mysql配置文件,一般是在 /etc/my.cnf 里面。如果自己设置了请自行打开
    • 在该配置文件中 【mysqld】下面添加如下内容
    [mysqld]
    log-bin=/var/lib/mysql/binlog  # 要同步的日志路径及文件名,添加前先去看一下,这个目录和文件mysql需要有权限去写入
    server-id=1 # 主机段的ID号,要保证和从机的不一致
    binlog-do-db=test  # 要同步的数据库
    binlog-ignore-db=mysql  # 不同步的数据库,以上两者可选添加
    
    • 修改完配置文件,如果要生效,必要重启mysqld,
      service mysqld restart或者systemctl restart mysqld
    • 如果启动失败,请查看日志解决问题。一般mysql日志在 /var/log/mysql.log
  • 查看当前主服务器的二进制日志名和偏移量,配置好之后从库即从这个偏移点去同步数据。
    • show master status\G
    • 记录File和Position的值。
  • 主服务器此时配置好了

配置从机从库

  • 首先关闭slave 进程

    • slave stop;
  • 开始如下配置操作:
    • CHANGE MASTER TO MASTER_HOST=‘主机ip’, MASTER_PORT=主机端口, MASTER_USER=‘主机用户名’, MASTER_PASSWORD=‘主机密码’, MASTER_LOG_FILE=‘主机的File文件的值’, MASTER_LOG_POS=主机Position的值 ;
    • 当然也可以设置 REPLICATION_DO_DB 要同步的数据库,REPLICATE_IGNORE_DB 不需要同步的数据库。可以精确到表(数据库.表)。最好保证与主机一致,除非你知道你在干什么。
    • 除了这样配置外,也可以去配置文件/etc/my.cnf配置:
    server-id=2 # 需要和主库的id不一样
    master-host=192.168.8.10 # 主库的IP
    master-user=root # 主库mysql的用户名
    master-password=1234 # 主库mysql的密码
    master-port=3306 # 主库mysql的端口
    replicate-do-db=test.table # 要同步的数据库,可以精确到表
    replicate-ignore-db=test.table # 不用同步的数据库,可以精确到表
    
  • 启动slave进程
    • slave start;
  • 查看slave进程的状态
    • show slave status\G
    • 如果 Slave_IO_Running 和 Slave_SQL_Running 的值都为 Yes。则表示配置是好的。

主库同步已有的数据到从库

主库操作

  • 首先锁住表,停止主库的数据更新操作,只允许读数据库。

    • flush tables with read lock;
  • 在shell中将主数据库的数据进行备份
    • mysqldump -u mysql用户名 -p mysql密码 test(要备份的数据库) > xxx.sql(要保存的路径和文件名)
  • 将备份文件传到从库,有多种方法,下面的只是一种
    • scp xxx.sql root(从库机器用户名)@从库机器ip:/root/
    • 例:scp xxx.sql root@192.168.1.2:/root/
  • 主库解锁
    • unlock tables;

从库操作

  • 首先停止从库的同步

    • slave stop;
  • 新建要同步的数据库
    • create database test(数据库名) default charset utf8;
  • 将数据导入从库数据库
    • 在shell上执行:mysql -uroot(mysql用户名) -p mysql密码 要导入的数据库 < xxx.sql
    • 例如:mysql -uroot -p1234 test < xxx.sql
  • 查看从库已有数据库和表

这时,就可以验证了,在主机数据库中添加表,或者数据,验证从库是否保持一致的改变。对主库的增删改查操作,从库会自动进行同步操作。
如遇到问题,需要交流,可以联系 1251108673

mysql的主从同步配置相关推荐

  1. Linux下MySQL数据库主从同步配置

    操作系统:CentOS 6.x 64位 MySQL数据库版本:mysql-5.5.35 MySQL主服务器:192.168.21.128 MySQL从服务器:192.168.21.129 准备篇: 说 ...

  2. mysql数据库主从同步配置教程--数据库同步

    背景: 最近有一个mysql数据库同步的需求,我用了mysql主从同步的方法来实现.下面把步骤记录一下. 环境和拓扑 操作系统:Centos6.6 X64 mysql版本:5.1.73 Master: ...

  3. mysql主从同步配置超详细_MySQL主从同步配置

    一. 理论部分 MySQL主从同步 主从同步使得数据可以从一个数据库服务器复制到其他的服务器上.在复制数据时,一个服务器充当主服务器(master),其余的服务器充当从服务器(slave). 因为复制 ...

  4. ShardingSphere(六) 读写分离之mysql 主从同步配置

    概述:本周介绍mysql的主从同步配置,为下一步的Sharding 读写分离提供操作环境.mysql 主从同步主要通过主库开启binlog文件功能,然后从库通过监听binlog中内容进行数据在从库的实 ...

  5. 5.5.35 - mysql 同步_MySQL 5.6.35主从同步配置案例

    MySQL 5.6主从同步配置案例分享 本文环境 主库:Redhat 6.5 x64 192.168.1.180 mysql-5.6.35 备库:Redhat 6.5 x64 192.168.1.18 ...

  6. mysql数据库连接配置路径_[zz]MySQL数据库主从同步安装与配置总结

    注意:本文出自"阿飞"的博客 ,如果要转载本文章,请与作者联系! 并注明来源: http://blog.sina.com.cn/s/blog_49fd52cf0100pog2.ht ...

  7. 源码安装mysql主从_mysql源码安装和主从同步配置

    mysql源码安装和主从同步配置 mysql介绍: MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.MySQL ...

  8. mysql 主从同步配置

    mysql 主从同步配置 转载于:https://www.cnblogs.com/liran123/p/10202534.html

  9. centos mysql 同步时间_centos:mysql主从同步配置(2018)

    centos:mysql主从同步配置(2018) 主服务器:10.1.1.144; 从服务器:10.1.1.163; 配置过程 1.进入主服务器,停止主服务mysql服务: systemctl sto ...

  10. linux mysql 主从数据库_Linux下安装MySQL及MySQL主从同步配置

    从零开始说起,先说在Linux安装MySQL再说主从配置,MySQL的版本为5.7 一.mysql安装 1.使用命令 rpm -qa|grep mariadb 查看是否存在mariadb 2. 使用 ...

最新文章

  1. 今天俺要说一说工厂方法模式(Factory)
  2. 阿里云3节点分布式RDS上存放100万数字数据
  3. 第四范式获信通院尖峰开源项目及开源人物双料大奖
  4. 让电脑清空数据或死机,一定要执行才舒服
  5. java遗传算法实例_遗传算法的基本概念和实现,附Java实现案例!
  6. 【备注】【C14】《HeadFirstJava(中文版)(第2版)》 PDF 下载
  7. php重定向和伪静态,「PHP重定向与伪静态区别」- 海风纷飞Blog
  8. 解决Minimum supported Gradle version is 4.6. Current version is
  9. 【余压监控系统】实时性、数字化、智能化,自动化,连续动态监控
  10. 文本分类:4、工程经验
  11. fabric java sdk解析channel.queryTransactionByID(txId)方法的返回值
  12. 取十位数,百位数,千位数的各位方法小姐
  13. Mysql 更改用户名密码
  14. 【趣文】我是一个线程
  15. vs2015 产品密钥
  16. c++类与对象(多文件编程!)(编写一个有关股票的程序,其中有两个类:一个是深圳类shen_stock,另一个是上海类shang_stock。)
  17. 决战燕京城-08 武穆帅印
  18. 面试记录-苏宁(客服研发中心)
  19. POST 和 PUT 方法区别
  20. 汤逊湖一期治理接近尾声,SL-MS水质取样监测无人船助力水质监测

热门文章

  1. php与ununtu通信,Ubuntu 20.04 LTS 已引入 PHP 7.4
  2. 诛仙单机java数据库_诛仙2单机11职业架设教程
  3. java 返回泛型_Java返回类型泛型的用法小结 | 学步园
  4. python pypdf2另存为图片_Python系列—PDF文本与图片抽取
  5. python采用强制自动缩进使代码具有极佳的可读性_Python的详细介绍
  6. h5手机端浏览器机制_h5浏览器缓存机制
  7. canvas需要gpu_提高HTML5 canvas性能的几种方法(转)
  8. 五步完成Spring整合Mybatis的完整示例
  9. Excel的设置 .net
  10. 论文笔记_S2D.66_ICRA_2021_LVI-SAM: 紧耦合的激光视觉惯导SLAM系统