zoukankan      html  css  js  c++  java
  • Windows下MySQL主从同步

    Windows下MySQL主从同步修改master的my.ini配置文件在master中添加一个mysql主从复制需要的账号查看master的status修改slave的my.ini配置文件slave连接master库测试主从同步

    Windows下MySQL主从同步

    修改master的my.ini配置文件

    从mysql官网下载的压缩包中默认是没有my.ini文件的,需要自己在根目录手动建立一个my.ini文件

    [mysqld] 
    #设置3310端口
    port = 3310
    #server-id和log-bin必须设置
    #设置master的serverid
    server-id=1000
    #要生成的二进制日记文件名称
    log-bin = mysql-bin
    #要同步的数据库
    binlog-do-db=demodb
    #不同步的数据库,如果指定了binlog-do-db这里应该可以不用指定的
    #binlog-ignore-db=demodb2

    在master中添加一个mysql主从复制需要的账号

    GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.*
    TO mysql_backup@'localhost'
    IDENTIFIED BY '123123';
    flush privileges;

    查看master的status

    slave连接master的时候需要FilePosition中的值

    mysql> show master status;
    +------------------+----------+--------------+------------------+-------------------+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000005 | 761 | demodb | | |
    +------------------+----------+--------------+------------------+-------------------+

    修改slave的my.ini配置文件

    #"server-id必须有且不能和其他master或slave重复"
    server-id = 1001
    replicate-do-db = demodb
    #log-bin = mysql-bin
    #binlog-ignore-db = mysql #不备份的数据库
    #binlog-ignore-db = information_schema
    #binlog-ignore-db = performation_schema
    #binlog-ignore-db = sys
    #log-slave-updates = 1
    #read_only = 1

    slave连接master库

    mysql> stop slave;
    Query OK, 0 rows affected

    #
    "master_log_file和master_log_pos的内容,通过在master库中通过show master status;可以获得"

    #
    "如果master修改了端口,一定要加上master_port=xx端口"

    #
    "master_user和master_password就是上面在master中建立的用于同步数据的账号密码"

    mysql>
    change master to master_host='localhost',master_port=3310,master_user='mysql_backup',master_password='123123',master_log_file='mysql-bin.000005',master_log_pos=761;
    Query OK, 0 rows affected

    mysql>
    start slave;
    Query OK, 0 rows affected

    #
    "查看连接状态,主要看Slave_IO_Running、Slave_SQL_Running。它们2个的值都必须是Yes才可以,不能是其他的Connecting之类"
    mysql> show slave status;

    测试主从同步

    #"以下操作都是在master库进行"

    #
    "创建需要同步的库demodb"
    mysql> create database demodb;
    Query OK, 1 row affected
    #"切换到demodb"
    mysql> use demodb;
    Database changed
    #"创建一个userinfo表"
    mysql> create table userinfo(id int(10) not null primary key,name varchar(10),age int(3));
    Query OK, 0 rows affected
    #"向userinfo表插入1条数据"
    mysql> insert into userinfo(id,name,age) values(1,'Yang-Onion',18);
    Query OK, 1 row affected

    #
    "进入从库会发现从库已经有demodb数据库userinfo表中已经有一条数据了"
  • 相关阅读:
    小兔生仔和汽水换瓶的两个算法
    dpi 编程
    作者赠送的《我的第一本c++书》收到啦
    什么是程序员的优良品质
    如何把事情做对?
    学习应有的态度
    魔方数算法
    我的第二本c++教科书
    如何处理人际关系
    电动玩具的开发思路
  • 原文地址:https://www.cnblogs.com/Yang2012/p/8640610.html
Copyright © 2011-2022 走看看