zoukankan      html  css  js  c++  java
  • windows mysql 主从同步

    安装数据库

    1.安装多个MYSQL数据库(具体安装步骤,详见文档 “windows mysql8 安装” )
     
    主库
    1.在主库中my.ini文件中添加配置信息
    log-bin = mysql-bin  #主从复制  表示启动二进制文件
    server_id = 3306  #server_id编号 编号唯一 可以默认为端口号
    binlog-do-db=quartz_backjob  #设置同步的数据库
    #binlog-ignore-db=mysql  #可以设置不需要同步的数据库
    具体的配置项目参照如下
    For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
    # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
    # *** default location during install, and will be replaced if you
    # *** upgrade to a newer version of MySQL.
    [client]
    default-character-set = utf8mb4
    [mysql]
    default-character-set = utf8mb4
    [mysqld]
    character-set-client-handshake = FALSE
    character-set-server = utf8mb4
    collation-server=utf8mb4_unicode_ci
    init_connect='SET NAMES utf8mb4'
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    innodb_buffer_pool_size = 128M
    # Remove leading # to turn on a very important data integrity option: logging
    # log_bin
    
    #MYSQL 安装目录
    basedir = D:\mysql-8.0.25-winx64
    
    #MYSQL 数据存放目录
    datadir = D:\mysql-8.0.25-winx64\data
    
    #mysql端口
    port = 3306
    
    #主从复制  表示启动二进制文件
    log-bin = mysql-bin
    
    #server_id编号 编号唯一 可以默认为端口号
    server_id = 3306
    
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    join_buffer_size = 128M
    sort_buffer_size = 16M
    read_rnd_buffer_size = 16M 
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    
    #同步的数据库
    binlog-do-db=quartz_backjob
    #不需要同步的数据库
    #binlog-ignore-db=mysql
     
    2.重启mysql服务
     
    3.使用root用户登录,(注意:一定要先cmd到mysql安装目录中的bin目录下)

    mysql -u root -p

     

     
    4.创建slave账号,并赋值权限,命令如下

    mysql> CREATE USER 'slave'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'slave123'
    mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' ;
    mysql> FLUSH PRIVILEGES;

     

     
    5.查看主数据库状态,注意这里的参数:File与Position,后续从库配置中会使用到

    show master status;

     

    从库
    my.ini具体的配置项如下
    For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
    # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
    # *** default location during install, and will be replaced if you
    # *** upgrade to a newer version of MySQL.
    [client]
    default-character-set = utf8mb4
    [mysql]
    default-character-set = utf8mb4
    [mysqld]
    character-set-client-handshake = FALSE
    character-set-server = utf8mb4
    collation-server=utf8mb4_unicode_ci
    init_connect='SET NAMES utf8mb4'
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    innodb_buffer_pool_size = 128M
    # Remove leading # to turn on a very important data integrity option: logging
    # log_bin
    
    #MYSQL 安装目录
    basedir = E:\mysql
    
    #MYSQL 数据存放目录
    datadir = E:\mysql\data
    
    #mysql端口
    port = 3307
    
    #server_id编号 编号唯一 可以默认为端口号
    server_id = 3307
    
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    join_buffer_size = 128M
    sort_buffer_size = 16M
    read_rnd_buffer_size = 16M 
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    
    #同步的数据库
    binlog-do-db=quartz_backjob
    #不需要同步的数据库
    #binlog-ignore-db=mysql
     
    1.登录从数据库
    mysql -P3307 -uroot -p   #3307为当前从数据库mysql端口

     
    2.查看从数据库状态
    show slave status;

     

    3.在从数据库中配置主数据库的信息

    change master to
    master_host='192.168.0.63',master_port=3306,master_user='slave',master_password='slave123',master_log_file='mysql-bin.000001',master_log_pos=820;
    参数解析:
    master_host:Master数据库地址
    master_port:Master数据库端口
    master_user:用户名
    master_log_file:对应Master数据库二进制日志文件
    master_log_pos:对应Master数据库Position

     
    4.启动slave
    start slave;

     

    5.查看运行状态

    show slave status\G
     当这下面两个属性为Yes的时候,配置成功。
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes

     
    注意:若出现同步失败(上面没显示两个yes),请查看Last_Error的错误信息,若错误信息为“Unknown database 'xxx'”,则可以将主数据库数据和表结构全部导出,并将此数据在从据库中导入。导入成功后,执行下面的语句再确保是否出错
    stop slave;
    start slave;
    show slave status\G

     
    6.测试。将主库中的数据修改,查看从库是否同步成功。

  • 相关阅读:
    ruby
    快捷键_命令行
    Babylon
    遇见的一些关于js冲突的问题
    js中出生年月日的使用,以及性别的判断
    js中iframe的使用
    js中ul与li的使用
    jQuery,ajax,for循环使用典型案例
    Easy | LeetCode 118. 杨辉三角
    Easy | LeetCode 461. 汉明距离 | 位运算
  • 原文地址:https://www.cnblogs.com/pfwbloghome/p/15582530.html
Copyright © 2011-2022 走看看