• 搭建mysql主从复制(主主复制)


    1:设主库允许远程连接(注意:设置账号密码必须使用的插件是mysql_native_password,其他的会连接失败)

    #切换到mysql这个数据库,修改user表中的host,使其可以实现远程连接
    mysql>use mysql;
    mysql>update user set host ="%" where user ="root";
    #改完之后一定要刷新信息
    mysql>flush privileges;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2:主库开启bin-log日志在my.cnf的[mysqld]下添加

    #修改主服务器Master
    #修改配置文件
    vim /etc/my.cnf
    #主服务器唯一ID,这个id可以随便修改,只要不跟从服务器重复,注意连接是-,不是_
    server-id=1
    #启用二进制日志
    log-bin=mysql-bin
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2-1:重启主库mysql

    [root@localhost ~]# systemctl retart mysql
    
    • 1

    2-2:查看主库server 相关信息

    mysql>  show global variables like '%server%';
    +---------------------------------+--------------------------------------+
    | Variable_name                   | Value                                |
    +---------------------------------+--------------------------------------+
    | character_set_server            | utf8mb4                              |
    | collation_server                | utf8mb4_0900_ai_ci                   |
    | innodb_dedicated_server         | OFF                                  |
    | innodb_ft_server_stopword_table |                                      |
    | server_id                       | 1                                    |
    | server_id_bits                  | 32                                   |
    | server_uuid                     | b434ab49-df79-11ee-9c39-0242ac110002 |
    +---------------------------------+--------------------------------------+
    7 rows in set (0.00 sec)
    
    mysql>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    2-2:查看主库是否开启bin-log日志

    mysql>  show global variables like '%log%';
    
    • 1

    在这里插入图片描述

    2-3:查看主库的最新状态

    mysql> show master status;
    +------------------+----------+--------------+------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000004 |      157 |              |                  |                   |
    +------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    
    mysql> FLUSH LOGS;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> show master status;
    +------------------+----------+--------------+------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000005 |      157 |              |                  |                   |
    +------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    
    mysql>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    2-4:查看全部的二进制文件,可以选择一步一步恢复

    mysql> SHOW BINARY LOGS;
    +------------------+-----------+-----------+
    | Log_name         | File_size | Encrypted |
    +------------------+-----------+-----------+
    | mysql-bin.000001 |       204 | No        |
    | mysql-bin.000002 |       204 | No        |
    | mysql-bin.000003 |       204 | No        |
    | mysql-bin.000004 |       204 | No        |
    | mysql-bin.000005 |       157 | No        |
    +------------------+-----------+-----------+
    5 rows in set (0.00 sec)
    
    mysql>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    3:从库开启bin-log日志在my.cnf的[mysqld]下添加

    #修改从服务器slave
    修改配置文件:vim /etc/my.cnf
    #从服务器唯一ID,注意连接是-,不是_
    server-id=2
    #启用中继日志
    relay-log=mysql-relay
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3-1:查看主库是否开启bin-log日志,从库也是一样

    在这里插入图片描述

    4:在主库创建一个账号slave,密码123456,并且授权连接

    mysql>GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by '123456';
    
    • 1

    4-1:在从库指定主库(添加 主节点主机,访问主节点的用户名及密码,主节点二进制文件信息,注意:主节点的二进制文件一定要是二进制列表中的最后一个二进制文件。如果需要设置主主就是主库也执行如下的命令,ip,账号,密码换成从库的)

    mysql> change master to master_host='192.168.11.47',master_user='root',master_password='root',master_log_file='mysql-bin.000005',master_log_pos=157;
    Query OK, 0 rows affected, 8 warnings (0.01 sec)
    
    • 1
    • 2

    4-2:主主设置

    mysql> change master to master_host='192.168.11.47',master_user='root',master_password='root',master_log_file='mysql-bin.000005',master_auto_position=1;
    Query OK, 0 rows affected, 8 warnings (0.01 sec)
    
    • 1
    • 2
    
    ## 5:检查从库复制功能状态(注意:Slave_IO_Running,Slave_SQL_Running,两个线程必须为yes状态,否则主从复制搭建不成功)
    
    ```bash
    show slave status \G;
    
    • 1
    • 2
    • 3
    • 4
    • 5

    5-1:先停止从库的复制功能

    mysql>stop slave;
    
    • 1

    5-2:再启动从库的复制功能

    mysql>start slave;
    
    • 1

    5-3:再查看从库的状态

    show slave status \G;
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    zookeeper异常 Cannot open channel to 3 at election address
    Symfony 请求教程
    Python UI自动化 —— 关键字+excel表格数据驱动
    【Hello Go】Go语言面向对象
    目标跟踪方向开源数据集资源汇总
    Docker学习(1)—— 安装Docker
    Maven笔记
    lectin
    文件系统 FTP Ubuntu 安装入门介绍
    【LittleXi】C程序预处理、编译、汇编、链接步骤
  • 原文地址:https://blog.csdn.net/qq_19891197/article/details/136612537