zoukankan      html  css  js  c++  java
  • MySQL(Mariadb)主从同步基础

    一、准备阶段

    两台linux虚拟机centos7版本,都安装了mariadb 5.5.6

    进行主从同步配置:

    首先防火墙要开放3306端口,

    主库服务器ip:192.168.211.100

    从库服务器ip:192.168.211.101

    二、配置主库

    1.主库上给从库ip授权

    mysql>GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.211.101' identified by 'test123456';
    mysql>FLUSH PRIVILEGES;

    2.修改主库配置文件

    设置server-id,开启binlog

    vim /etc/my.cnf

    添加:

    log-bin=/var/lib/mysql/binlog
    server-id=1
    binlog-do-db = study1

     

    server-id:主库端的ID号;

    log-bin:同步的日志路径及文件名

    binlog-do-db:要同步的数据库名

    设置不同步的数据库:

    binlog-ignore-db = mysql 不同步mysql库和test库
    binlog-ignore-db = test

    配置好后重启mysql(mariadb)

    service mariadb restart

    3.查看主库状态

    mysql> show master status;

     查看主服务器当前二进制日志名和偏移量,为了在从库启动后,从这个位置进行数据的恢复

    三、配置从库

    1.配置文件

    vi /etc/my.conf

    由于新版本mysql(或mariadb)有些变量不在配置文件中设置,只要添加如下:

    server-id=2

    replicate-do-db=study1

    mysql中:

    mysql> CHANGE MASTER TO MASTER_HOST='192.168.211.100',
      MASTER_PORT=3306,
      MASTER_USER='rep1',
      MASTER_PASSWORD='test123456',
      MASTER_LOG_FILE='binlog.000007',
      MASTER_LOG_POS=245; #后面两个参数的值与主库保持一致

    2.启动slave进程

    mysql> slave start;

    3.查看从库状态

    若显示:

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    则成功

    四、同步数据

    主库操作:

    1、停止主库的数据更新操作

    mysql>flush tables with read lock;
    2、新开终端,生成主数据库的备份(导出数据库)

    [root@lsx01 ~]# mysqldump -uroot -ptest123 study1 > study1.sql
    3、将备份文件传到从库

    [root@lsx01 ~]# scp study1.sql root@192.168.211.101:/root/
    4、主库解锁

    mysql>unlock tables;

    从库操作:

    1、停止从库slave

    mysql>slave stop;
    2、新建数据库study1

    mysql> create database study1 default charset utf8;
    3、导入数据

    [root@lsx01  ~]# mysql -uroot -ptest123 study1<study1.sql
    4、查看从库已有该数据库和数据

    mysql> show databases;

    然后进行增删改查测试即可

    附录:

    一、mysql下这条命令可以给其他主机此数据库所有权限:

    grant all privileges on *.* to 'username'@hostname identified by 'password' with grant option;

    二、将库打包出sql文件

    [root@lsx02 ~]# mysqldump -uroot -p123456 study1 > study1.sql

    三、远程导入sql文件

     mysql -h 192.168.211.100 -urep1 -ptest123456 study1 < study1.sql

  • 相关阅读:
    js 工厂模式、简单模式、抽象模式
    Angular 框架介绍
    Node.js从入门到实战ECMAScript6一页纸总结(很大的一页纸)
    ECMAScript 5和ECMAScript6的新特性以及浏览器支持情况
    JSONP 教程
    jQuery ajax() 方法
    AJAX异步的 JavaScript
    自动化构建工具--gulp的初识和使用
    front-end 前端发展学习路线参考图
    Webpack 常用命令总结以及常用打包压缩方法
  • 原文地址:https://www.cnblogs.com/JiaoTou/p/10617091.html
Copyright © 2011-2022 走看看