• windows下实现mysql8的主从复制


    1、下载mysql8的安装

    MySQL :: Download MySQL Community Server

    2、放到指定目录进行解压,更改名称为mysql-8.1.0-winx64-master,并复制一份作为从数据库

    3、在bin目录下创建一个my.ini文件

    添加如下内容

    [mysqld]
    basedir="D:/soft/mysql/mysql-8.1.0-winx64-master"
    datadir="D:/soft/mysql/mysql-8.1.0-winx64-master/data"
    socket="D:/soft/mysql/mysql-8.1.0-winx64-master/mysql.sock"
    log-bin=mysql-bin
    server-id=1
    port=3306
    # 设置需要同步的数据库
    binlog-do-db=mydb
    # 屏蔽系统库同步
    binlog-ignore-db=mysql
    binlog-ignore-db=information_schema
    binlog-ignore-db=preformance_schema

    4、使用管理员打开cmd并使用如下命令初始化数据库,此时会在安装包目录下创建data目录

    mysqld --initialize-insecure

    5、注册服务mysql-master

    mysqld install mysql-master --defaults-file="D:\soft\mysql\mysql-8.1.0-winx64-master\bin\my.ini" 

    6、启动服务,可以使用如下命令或者在服务中重启

    net stop mysql-master

    net start mysql-master

    6、设置主库root用户密码
    mysqladmin -u root -password 12345678;

    或者也可以在进入mysql后进行密码的修改

    mysql -uroot -P3306;

    use mysql;

    ALTER user 'root'@'localhost' IDENTIFIED BY '12345678'

    7、进行navicat配置主库连接

    8、创建用于同步的账号slave,设置过期策略,修改服务器权限

    9、使用如下命令查找File文件是否存在,是同步时会使用的binlog文件,记住File及Position的值

    show master status;

    10、配置从数据库,在拷贝的mysql-8.1.0-winx64-slave的bin路径下添加从库的my.ini文件并进行配置

    [client]
    port=3307
    socket="D:/soft/mysql/mysql-8.1.0-winx64-slave/mysql.sock"
    [mysqld]
    basedir="D:/soft/mysql/mysql-8.1.0-winx64-slave"
    datadir="D:/soft/mysql/mysql-8.1.0-winx64-slave/data"
    socket="D:/soft/mysql/mysql-8.1.0-winx64-slave/mysql.sock"
    port=3307
    server-id=2
    #skip-grant-tables
    log-bin=mysql-bin

    # 设置需要同步的数据库表
    replicate_wild_do_table=mydb.%
    # 屏蔽系统库同步
    replicate_wild_ignore_table=mysql.%
    # 启用中继日志
    relay-log=mysql-relay
    # 将从服务器设置为只读
    read_only=1

    # 要进行主从复制的数据库名
    replicate-do-db=mydb
    # 不进行主从复制的数据库名
    replicate-ignore-db=mysql
    # 记录从库更新,允许链式复制(A-B-C),当该从库作为其他库的主库时,需要添加该参数
    log-slave-updates

    11、以管理员权限打开cmd控制台,进行相应的操作

    mysqld.exe --initialize-insecure --user=mysql

    mysqld install mysql-slave --defaults-file="D:\soft\mysql\mysql-8.1.0-winx64-slave\bin\my.ini"

    net start mysql-slave

    12、登录从数据库,进行root用户密码修改,开启远程访问

    mysql -uroot -P3307

    use mysql;

    ALTER user 'root'@'localhost' IDENTIFIED BY 'xtf******';

    # 开启远程访问,不开启通过Navicat远程连接会报错Access denied for user

    update user set host='%' where user='root';

    FLUSH PRIVILEGES;

    13、重启服务

    net stop mysql-slave

    net start mysql-slave

    14、在navicat中配置同步

    stop slave;
    change master to master_host='127.0.0.1',master_port=3306,master_user='slave',master_password='123456',master_log_file='mysql-bin.000005',master_log_pos=569;
    start slave;

    show slave status;

    # 如上参数

    master_host  主库的ip地址

    master_port   主库的端口

    master_user  同步账号

    master_password  同步账号的密码

    master_log_file    开始同步的日志文件要与上边show master status的File一样

    master_log_pos   开始同步的日志的开始位置

    15、也可以在命令行中使用命令启动链路及查看链路

    stop slave;

    start slave;

    show slave status \G;

    16、验证,在主库中进行表内容的创建,从库也会进行相应操作

    主库进行数据添加

    从库出现相应操作

  • 相关阅读:
    基于C#实现五家共井
    期末人福音——用Python写个自动批改作业系统
    国庆作业1
    Kafka学习
    初始结构体
    C-Model以及ASIC设计
    微服务 技术栈
    JavaScript中事件绑定和DOM事件流(冒泡和捕获)-案例详解
    组件的自定义事件①
    7 Series Devices Memory Interface Solution - Memory Controller Block
  • 原文地址:https://blog.csdn.net/xutengfei999/article/details/133272038