• Window环境搭建MySQL主从复制


    1、安装多个MySQL服务

    服务名称端口
    MySQL8-Master3308
    MySQL8-Slave3309

    安装教程:https://blog.csdn.net/Session_s/article/details/123429189
    在这里插入图片描述在这里插入图片描述

    2、my.ini 配置

    配置主从之间同步user_dborder_db库,并忽略初始库

    2.1、master主库

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8 
    [mysqld]
    # 设置3308端口
    port = 3308
    # 设置mysql的安装目录
    basedir=D:\JavaSoftware\Database\MySQL\Master Slave\Master-3308
    # 设置mysql数据库的数据的存放目录
    datadir=D:\JavaSoftware\Database\MySQL\Master Slave\Master-3308\data
    # 允许最大连接数
    max_connections=200
    # 设置mysql服务端默认字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    # MySQL 服务的唯一编号,每个 MySQL 服务的 id 需唯一
    server-id=3308
    
    
    # binlog 文件名
    log-bin=mysql-bin
    
    # 设置需要同步的数据库名
    binlog-do-db=user_db
    binlog-do-db=order_db
     
    # 屏蔽数据库同步
    binlog-ignore-db=mysql
    binlog-ignore-db=performance_schema
    binlog-ignore-db=information_schema
    binlog-ignore-db=sys
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    2.2、slave从库

    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8 
    [mysqld]
    # 设置3309端口
    port = 3309
    # 设置mysql的安装目录
    basedir=D:\JavaSoftware\Database\MySQL\Master Slave\Slave-3309
    # 设置mysql数据库的数据的存放目录
    datadir=D:\JavaSoftware\Database\MySQL\Master Slave\Slave-3309\data
    # 允许最大连接数
    max_connections=200
    # 设置mysql服务端默认字符集
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    # MySQL 服务的唯一编号,每个 MySQL 服务的 id 需唯一
    server-id=3309
    
    
    # binlog 文件名
    log-bin=mysql-bin
     
    # 设置需要同步的数据库
    replicate_wild_do_table=user_db.%
    replicate_wild_do_table=order_db.%
    
    # 设置忽略同步的数据库
    replicate_wild_ignore_table=mysql.%
    replicate_wild_ignore_table=performance_schema.%
    replicate_wild_ignore_table=information_schema.%
    replicate_wild_ignore_table=sys.%
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    3、在从库创建只读权限的用户readonly

    创建用户: readonly 密码:123456

    CREATE USER `readonly`@`` IDENTIFIED BY '123456';
    
    • 1

    给用户readonly授予数据库order_dbuser_db的只读权限:

    GRANT Select ON `order\_db`.* TO `readonly`@``; 
    GRANT Select ON `user\_db`.* TO `readonly`@``;
    
    • 1
    • 2

    4、设置主从

    4.1 、连接主数据库

    使用SHOW MASTER STATUS 查询主库的binlog文件名以及起始点position
    在这里插入图片描述

    4.2 、连接从数据库

    1、使用STOP SLAVE;停止I/O 线程和SQL线程的操作
    在这里插入图片描述

    2、使用CHANGE MASTER TO命令配置slave连接master的信息
    CHANGE MASTER TO MASTER_HOST='localhost',MASTER_PORT=3308,MASTER_USER='root',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=1044;

    注:MASTER_LOG_FILEMASTER_LOG_POS通过步骤4.1查询主库数据得到。

    在这里插入图片描述
    3、使用START SLAVE;启动I/O 线程和SQL线程
    在这里插入图片描述

    4、查看从库状态:SHOW SLAVE STATUS;
    在这里插入图片描述

  • 相关阅读:
    阿里内部首发面试终极指南V3.0,相对一线大厂面试知识点+面试题
    Flink
    软考 --- 软件工程(1)概念、开发模型
    js 判断字符串中是否包含某个字符串
    VUE3.0+Antdv+Asp.net WebApi开发学生信息管理系统(完)
    Docker:(十)consul注册中心、注册机
    Java 基础常见知识点&面试题总结(下),2022 最新版!
    2022锦江行——非繁城品:疫情之下,存量酒店的突围之道
    Linux 系统为何产生大量的 core 文件?
    对均匀采样信号进行重采样
  • 原文地址:https://blog.csdn.net/Session_s/article/details/125436532