mysql主从(windows)

原创
07/28 11:30
阅读数 53

mysql windows主从

  • 准备环境

    • 数据库版本

      • 主数据库版本 5.7.21
      • 从数据库版本 5.7.25

        只要数据库的前两个版本号一致,那么就可以进行主从同步。

    • 主数据库开启binlog 日志

      #mysql binlog 日志
      log_bin = C:/Development/mysql/mysql-5.7.25-winx64/log/mysql-bin
      #服务器标识id
      server-id = 001
      expire_logs_days = 7
      max_binlog_size = 100m
      binlog_format=MIXED
      
      • 重启服务器,使修改的my.ini 生效

      • 使用下面的语句进行验证是否开启log_bin

        SHOW VARIABLES LIKE '%log_bin%'
        
    • 创建从库的登陆用户

      GRANT replication SLAVE  ON  *.* TO repl@'%' IDENTIFIED by '123456'
      
      • 使用新建用户进行登陆,进行验证
    • 主机数据备份到从库

      C:\Development\mysql\mysql-5.7.25-winx64\bin> mysqldump.exe  -h localhost   -u root -p123456 --databases  test_copy | mysql -h 192.168.5.90 -u root -p123456
      
      • 在从库进行登陆查看,是否备份过来
  • 修改从服务配置

    • 给从库增加服务标识(MySQL 5.7.3 及以后版本,如果没有设置server-id, 那么设置binlog后无法开启MySQL服务)
      server-id = 002
      
    • 重启mysql服务
    • 登陆从库的mysql,执行如下命令
      stop  slave;
      
      • stop slave,就是分别关闭了I/O线程(stop slave IO_THREAD)和SQL线程(stop slave SQL_THREAD),I/O线程会维护master.info信息的更新,SQL线程会维护relay-log.info信息的更新
  • 主从进行网络链接

    • 执行下面的命令也需要登陆从库的mysql,并且在mysql 的从库执行

    • 从库现在开始绑定主库ip进行binlog日志的读取

      change master to master_user='repl',master_password='123456',master_host='192.168.5.155',master_port=3306,master_log_file='mysql-bin.000003',master_log_pos=154; 
      
      
    • 如果不知道,自己需要同步的是那个bin_log 日志文件,请使用下面的命令,在主库执行查询

      SHOW MASTER STATUS
      
    • 启动从库mysql 线程维护信息

      start  slave;
      
    • 从库查看是否绑定

      SHOW SLAVE STATUS
      
    • 参数说明

      #唯一的id,不能和master相同 
      server-id=106
      #主库的ip
      master-host=192.168.5.155
      #主库创建同步的用户名
      master-user=repl
      #主库创建同步账户的密码 
      master-password=123456
      # 主库的端口
      master-port=3306
      #从库读取主库的归档日志
      master_log_file='mysql-bin.000003'
      # 当重新建立主从连接时,如果连接建立失败,间隔多久后重试。单位为秒,默认设置为60秒,同步延迟调优参数。
      master-connect-retry=60
      #要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名 
      replicate-do-db=test_copy
      #忽略的数据库
      replicate-ignore-db=mysql
      # show master status命令查到的:postion位置(开始同步的日志偏移量)
      master_log_pos=154
      
  • 操作数据,查看是否同步

    • 主库执行创建库表,从库进行查看是否同步
      CREATE TABLE `test`  (
      `id` int(0) NOT NULL,
      PRIMARY KEY (`id`)
      );
      
  • 取消mysql 主从

    # 停止从库
    stop slave
    # 重新设置从库
    reset slave;
    # 重设所有从库
    reset slave all;
    # 查看从库链接状态信息
    show slave status
    
展开阅读全文
打赏
1
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
1
分享
返回顶部
顶部