mysql 主从配置

实现MySQL主从复制需要进行的配置

  • 主服务器 - 192.168.1.24:

    • 开启二进制日志

    • 配置唯一的server-id

    • 获得master二进制日志文件名及位置

    • 创建一个用于slave和master通信的用户账号

  • 从服务器 - 192.168.1.104:

    • 配置唯一的server-id

    • 使用master分配的用户账号读取master二进制日志

    • 启用slave服务

准备工作

  • 主从数据库版本最好一致
  • 主从数据库内数据保持一致

主数据库master修改

  • 修改mysql配置 (找到主数据库的配置文件my.cnf(或者my.ini),我的在/etc/mysql/my.cnf,在[mysqld]部分插入如下两行)

    #开启二进制日志
    log-bin=mysql-bin
    #设置日志格式
    binlog-format=ROW
    #设置server-id
    server-id=1 
    #设置主从复制数据库
    binlog-do-db=zhu_cong_test
    
  • 重启mysql,创建用于同步的用户账号

    #创建用户
    CREATE USER 'slave'@'192.168.1.104' IDENTIFIED BY '123456';
    #分配权限
    GRANT REPLICATION SLAVE ON *.* TO 'slave'@'192.168.1.104';
    #刷新权限
    flush privileges;
    
  • 查看master状态,记录二进制文件名和位置

    mysql> SHOW MASTER STATUS\G;
    *************************** 1. row ***************************
                 File: mysql-bin.000005
             Position: 154
         Binlog_Do_DB: zhu_cong_test
     Binlog_Ignore_DB:
    Executed_Gtid_Set:
    1 row in set (0.00 sec)
    

从数据库slave修改

  • 同样找到my.cnf配置文件,添加server-id

    #设置server-id,必须唯一
    server-id=2
    #开启二进制日志
    log-bin=mysql-bin
    #设置日志格式
    binlog-format=ROW
    
  • 重启mysql,打开mysql会话,执行同步SQL语句(需要主服务器主机名,登陆凭据,二进制文件的名称和位置)

    #设置同步
    CHANGE MASTER TO MASTER_HOST='192.168.1.24', MASTER_USER='slave', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000005', MASTER_LOG_POS=154;
    #启动slave同步进程
    start slave;
    #查看slave状态
    show slave status\G;
    
  • 查看slave状态:(Slave_IO_Running: Yes Slave_SQL_Running: Yes)

    mysql> show slave status\G;
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: 192.168.1.24
                      Master_User: salve
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql-bin.000005
              Read_Master_Log_Pos: 154
                   Relay_Log_File: localhost-relay-bin.000002
                    Relay_Log_Pos: 1383
            Relay_Master_Log_File: mysql-bin.000005
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
    
    

    主要确认 Master_Host,Master_User,Master_Port,Master_Log_File,Read_Master_Log_Pos 是否与主服务器一致

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、实验目标 搭建两台MySQL服务器,一台作为主服务器,一台作为从服务器,主服务器进行写操作,从服务器进行读操作...
    丢了发型的男人阅读 702评论 0 4
  • 环境配置 调试信息如下,linux6.8, mysql5.6.42版本,两台虚拟机,分别为192.168..100...
    原来的猿阅读 651评论 0 1
  • 1 什么是主从 主从同步使得数据可以从一个数据库服务器复制到其他服务器上,在复制数据时,一个服务器充当主服务器(m...
    dark68阅读 927评论 0 12
  • 官方推荐: mysql主从复制要求版本最好一致,至少前两个版本号相同,最主要还是怕版本不一致带来的不兼容问题。如现...
    sizuoyi00阅读 667评论 0 0
  • 转载:https://www.cnblogs.com/alvin_xp/p/4162249.html Mysql主...
    Leo_df55阅读 438评论 0 1