zoukankan      html  css  js  c++  java
  • mysql_主从复制

    MySQL主从复制

    一.材料准备

    1.虚拟机

    2.centos7

    ①:主机192.168.88.100

    ②从机:192.168.88.101

    这两个要能互通,最好关闭防火墙,或者把端口暴露,自行百度

    3.数据库

    ①主库新建一个库,建一个表,然后导出,再导入到从库,保证两个数据一致.

    二.配置uuid

    因为我的mysql是从一个虚拟机镜像克隆的,所以两个mysql的uuid是一致的,要修改一下,不然后面会出问题(单独安装的跳过)

    在/var/lib/mysql/auto.cnf文件中就有uuid,修改这个文件总的uuid的值,随便替换几个字符就可以了.最好是主库个从库都修改下.

    三.开始配置

    1.主库

    ①修改my.cnf

    在/etc/my.cnf文件中最后加入

    server-id=100 #数据库服务的唯一标识,一般为服务器Ip的末尾号
    log-bin=mysql-bin #开启binlog
    binlog-do-db=iyousi #同步的数据库,这里可以不写,不写就代表所有库,我自己加了一个限制,只同步这个库

    ②然后重启数据

    systemctl restart mysqld

    ③创建授权账户

    登录数据库后,创建一个用于同步的账户,密码复杂点,不然会失败

    ##创建
    create user 'repl'@'192.168.88.%' identified by 'Passw0rd!';
    ##授权
    GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.88.%';

    ④刷新数据库

    FLUSH PRIVILEGES;也可以重启数据库,都可以

    ⑤查看状态

    show master status;

    会得到一个表格,记住这几列的值

    第一个:File

    第二个:Position

    主机配置就完成了

    2.从库

    ①修改my.cnf

    #从机配置
    log_bin=mysql-bin #开启binlog
    server_id=101 #数据库服务的唯一标识,一般为服务器Ip的末尾号
    replicate-do-db=iyousi#要同步的数据库,这里与上面的要一致,可以不写就是所有的都同步,我这里写了的

    ②重启数据库

    systemctl restart mysqld

    ③创建一个同步

    CHANGE MASTER TO 
    master_host = '192.168.88.100',
    master_user = 'repl',
    master_password = 'Passw0rd!',
    master_log_file = 'mysql-bin.000001',
    master_log_pos = 154;

    master_host:主机ip

    master_user:用于同步的用户

    master_password:密码

    master_log_file:这就是上面要记住的那个值

    master_log_pos:这个也是

    ④开始同步

    start slave;

    ⑤查看状态

    show slave status G

    如果

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    都为yes,就成功了

    试试效果吧,在主库修改数据,可以看到从库数据也变了

     

  • 相关阅读:
    统计任意字符串中字符出现次数,利用HashMap实现
    常用控件的使用方法
    Opencv读取图片和视频
    复制文件夹(多级递归)
    将指定文件中的数据存入集合中
    将集合中的学生对象输出到指定文件中
    利用缓冲字符输入流读取学生姓名名单实现点名
    字符流中的编码和解码分析
    字节缓冲流和基本字节流读取文件(一个字节读取,一个字节数组读取)
    路径中““、“/“的区别
  • 原文地址:https://www.cnblogs.com/songfahzun/p/9470829.html
Copyright © 2011-2022 走看看