zoukankan      html  css  js  c++  java
  • 多机MySQL一主双从详细安装主从复制

    多机MySQL一主双从详细安装


    一、复制的工作原理

    要想实现AB复制,那么前提是master上必须要开启二进制日志

    1.首先master将数据更新记录到二进制日志文件
    2.从slave start开始,slave通过I/O线程向master请求二进制日志文件指定位置之后的内容
    3.master接收到slave的io请求之后,就会从相应的位置点开始,给slave传日志
    4.slave接收到日志后,会写入本地的中继日志中
    5.slave通过sql线程读取中继日志的内容,在数据库中执行相应的操作,到此为止,master和slave上的数据一致,之后slave服务器进入等待状态,等待master的后续更新

     

     

     

    二、主从复制配置

     

    172.20.28.36

    MySQL-master

    yum install mysql mysql-server -y

    172.20.28.37

    MySQL-slave1

    yum install mysql mysql-server -y

    172.20.28.38

    MySQL-slave2

    yum install mysql mysql-server -y

    小结:mysql服务是yum安装的,配置文件:/etc/my.cnf  数据存放目录:/var/lib/mysql

     

     

    2.1 修改主库和从库的配置文件

    master

    Slave1

    Slave2

    [root@i-t27hedd8 ~]# cat /etc/my.cnf

    [mysqld]

    datadir=/var/lib/mysql

    socket=/var/lib/mysql/mysql.sock

    user=mysql

    # Disabling symbolic-links is recommended to prevent assorted security risks

    symbolic-links=0

    server-id=1

    log-bin=/var/lib/mysql/mysql-bin

     

     

    [mysqld_safe]

    log-error=/var/log/mysqld.log

    pid-file=/var/run/mysqld/mysqld.pid

     

    [mysqld]

    datadir=/var/lib/mysql

    socket=/var/lib/mysql/mysql.sock

    user=mysql

    # Disabling symbolic-links is recommended to prevent assorted security risks

    symbolic-links=0

    server-id=3

     

     

    [mysqld_safe]

    log-error=/var/log/mysqld.log

    pid-file=/var/run/mysqld/mysqld.pid

     

    [mysqld]

    datadir=/var/lib/mysql

    socket=/var/lib/mysql/mysql.sock

    user=mysql

    # Disabling symbolic-links is recommended to prevent assorted security risks

    symbolic-links=0

    server-id=5

     

     

     

    [mysqld_safe]

    log-error=/var/log/mysqld.log

    pid-file=/var/run/mysqld/mysqld.pid

     

    小结:

    1、主库开启binlog日志

    2、主从server-id不同

    3、从库服务器能连通主库

     

    2.2 在master端查看

     

    mysql> show variables like "log_bin";

    +---------------+-------+

    | Variable_name | Value |

    +---------------+-------+

    | log_bin       | ON    |

    +---------------+-------+

    1 row in set (0.00 sec)

     

    mysql> show master status;

    +------------------+----------+--------------+------------------+

    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

    +------------------+----------+--------------+------------------+

    | mysql-bin.000001 |      341 |              |                  |

    +------------------+----------+--------------+------------------+

    1 row in set (0.00 sec)

     

     

     

    2.3在主库创建复制用户

    mysql> grant replication slave on *.* to 'oldboy123'@'172.20.28.%' identified by 'oldboy123';

    Query OK, 0 rows affected (0.00 sec)

     

    mysql> flush privileges;

    Query OK, 0 rows affected (0.00 sec)

     

     

    mysql> select user,host,password  from mysql.user;

    +-----------+-------------+-------------------------------------------+

    | user      | host        | password                                  |

    +-----------+-------------+-------------------------------------------+

    | root      | localhost   | *FE28814B4A8B3309DAC6ED7D3237ADED6DA1E515 |

    | root      | i-t27hedd8  |                                           |

    | root      | 127.0.0.1   |                                           |

    |           | localhost   |                                           |

    |           | i-t27hedd8  |                                           |

    | oldboy123 | 172.20.28.* | *FE28814B4A8B3309DAC6ED7D3237ADED6DA1E515 |

    +-----------+-------------+-------------------------------------------+

     

     

    2.4 分别在两台从库上操作

    mysql> change master to  master_host='172.20.28.36', master_port=3306, master_user='oldboy123', master_password='oldboy123', master_log_file='mysql-bin.000001', master_log_pos=714;

     

    mysql> flush privileges;

     

    2.5 分别开启两台从库

    mysql> start slave;

     

    2.6 分别查看两台从库的信息

     show slave statusG;

    *************************** 1. row ***************************

                   Slave_IO_State: Waiting for master to send event

                      Master_Host: 172.20.28.36

                      Master_User: oldboy123

                      Master_Port: 3306

                    Connect_Retry: 60

                  Master_Log_File: mysql-bin.000001

              Read_Master_Log_Pos: 1130

                   Relay_Log_File: mysqld-relay-bin.000002

                    Relay_Log_Pos: 667

            Relay_Master_Log_File: mysql-bin.000001

                 Slave_IO_Running: Yes

                Slave_SQL_Running: Yes

                  Replicate_Do_DB:

              Replicate_Ignore_DB:

               Replicate_Do_Table:

           Replicate_Ignore_Table:

          Replicate_Wild_Do_Table:

      Replicate_Wild_Ignore_Table:

                       Last_Error:

                     Skip_Counter: 0

              Exec_Master_Log_Pos: 1130

                  Relay_Log_Space: 823

                  Until_Condition: None

                   Until_Log_File:

                    Until_Log_Pos: 0

               Master_SSL_Allowed: No

               Master_SSL_CA_File:

               Master_SSL_CA_Path:

                  Master_SSL_Cert:

                Master_SSL_Cipher:

                   Master_SSL_Key:

            Seconds_Behind_Master: 0

    Master_SSL_Verify_Server_Cert: No

                    Last_IO_Errno: 0

                    Last_IO_Error:

     

     

    至此,MySQL一主双从就配置完成了。   

  • 相关阅读:
    SharePoint 2013 安装.NET Framework 3.5 报错
    SharePoint 2016 配置工作流环境
    SharePoint 2016 站点注册工作流服务报错
    Work Management Service application in SharePoint 2016
    SharePoint 2016 安装 Cumulative Update for Service Bus 1.0 (KB2799752)报错
    SharePoint 2016 工作流报错“没有适用于此应用程序的地址”
    SharePoint 2016 工作流报错“未安装应用程序管理共享服务代理”
    SharePoint JavaScript API in application pages
    SharePoint 2016 每天预热脚本介绍
    SharePoint 无法删除搜索服务应用程序
  • 原文地址:https://www.cnblogs.com/16795079a/p/11220624.html
Copyright © 2011-2022 走看看