• Windows下mysql双主搭建


    1.选用版本
    官网一般提供两种包
    mysql-8.0.21-winx64.zip免安装版
    mysql-installer-community-8.0.21.0.msi安装版
    这里我选用免安装版
    最新包请去官网下载
    https://dev.mysql.com/downloads/mysql/
    https://dev.mysql.com/downloads/windows/installer/8.0.html


    2.搭建环境
    这里我使用两台Win10虚拟机进行搭建
    (1)其中一台
    10.6.10.250
    (2)剩下一台
    10.6.10.251
    (3)在MySQL免安装包根目录下(这里即C:mysql-8.0.21-winx64in目录上一级)创建my.ini配置文件
    [mysqld]
    log-bin=mysql-bin
    server-id=2  //注意两台服务器上的server id 绝对不能相同
    basedir=C:mysql-8.0.21-winx64
    datadir=C:mysql-8.0.21-winx64data
    port=3306
    (4)管理员启动命令行
    mysqld --initialize-insecure --user=mysql //会在data目录下创建文件
    mysqld -install
    net start mysql
    mysql -uroot -p
    use mysql;
    alter user 'root'@'localhost' identified with mysql_native_password BY '123456';
    flush privileges;
    exit;
    *其他
    net stop mysql
    mysql -remove

    3.首先创建用于同步的用户
    create user 'slave'@'%' identified with mysql_native_password by 'slave'; //创建同步用户
    *这里两台服务器可以分别创建各自的用户比如:第一台slave1,第二台slave2,因为下面赋权限时,如果是给所有数据库赋权限,则该用户也会被同步,则第一台创建好后在第二台服务在创建相同用户时,会报错。
    grant replication slave on *.* to 'slave'@'%'; //给用户赋权限
    *这里可以考虑只将特定库的所有表用于该用户同步:grant replication slave on mr_rcs.* to 'slave'@'%';
    flush privileges; //刷新权限缓存

    use mysql;

    select * from user where User='slave'; //查看新建用户状态是否正确


    4.查看自身当前bin-log日志信息
    flush tables with read lock; //锁表写权限,当前只读
    show master status; //查看日志状态


    5.指定同步规则
    unlock tables; //解锁表写权限
    stop slave; //停止同步服务
    假设当前是第二台服务器,则
    change master to master_host='10.6.10.250',master_user='slave1',master_password='slave',master_log_file='mysql-bin.000002',master_log_pos=1173; //第一台服务器IP地址为10.6.10.250,本地同步用户slave1,第一台服务器的日志文件,最新日志记录行数
    //反之,如果当前是第一台服务器,则
    change master to master_host='10.6.10.251',master_user='slave2',master_password='slave',master_log_file='mysql-bin.000002',master_log_pos=1173;


    6.开启同步
    start slave IO_THREAD; //开启读写线程
    start slave SQL_THREAD; //开启sql同步线程
    stop slave;
    set global sql_slave_skip_counter=1;
    start slave;
    show slave status; //查看同步状态
    *上述所有操作完成后查看同步状态有几个重要指标,如果状态正确则表示同步建立成功,并且状态已经同步
    Slave_IO_Running:Yes
    Slave_SQL_Running:Yes //如果是No,一般是在该台服务器上执行了写操作或者机器重起(mysql服务重启),事务回滚造造成
    Seconds_Behind_Master:0
    如果状态不对:
    可重复执行第5、6两步骤

    7.
    show processlist; //查看用户进程状态

  • 相关阅读:
    实现一个微型数据库
    InstallShield 12 制作安装包
    .NET MVC学习笔记(一)
    递归和迭代的差别
    nginx 日志和监控
    c语言中的位移位操作
    Android应用程序绑定服务(bindService)的过程源码分析
    关于js中window.location.href,location.href,parent.location.href,top.location.href的使用方法
    iOS Crash 分析(文二)-崩溃日志组成
    js 字符串转换成数字的三种方法
  • 原文地址:https://www.cnblogs.com/chenyixun/p/13810156.html
Copyright © 2020-2023  润新知