欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL主從復(fù)制搭建流程分步實現(xiàn)

 更新時間:2022年11月05日 11:38:44   作者:宏遠十一冠王  
這篇文章主要介紹了MySQL的主從復(fù)制原理詳細分析,讀寫分離是基于主從復(fù)制來實現(xiàn)的。文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下

主從復(fù)制

主從也叫做(AB復(fù)制),允許一個服務(wù)器從一個服務(wù)器數(shù)據(jù)庫(主服務(wù)器)的數(shù)據(jù)復(fù)制到一個或者多個MySQL數(shù)據(jù)庫服務(wù)器。

主從復(fù)制的優(yōu)點有很多,包括橫向擴展解決方案,數(shù)據(jù)安全性,數(shù)據(jù)分析,遠程數(shù)據(jù)分發(fā)。

主從搭建

作為主服務(wù)器的服務(wù)器開啟二進制日志(binlog);

下面我們來搭建主從復(fù)制的,采用3個節(jié)點來嘗試;

節(jié)點角色主機名Ip地址server-id
mastermaster192.168.246.1321
slavesalve192.168.246.1342
slave2salve2192.168.246.1363

首先需要在etc/hosts中添加IP地址和主機名之間的映射關(guān)系,啟動節(jié)點的數(shù)據(jù)庫,然后可以查看他們的server-id

show variables like 'server_id';
# 創(chuàng)建主從復(fù)制的賬號
create user 'rep1'@'192.168.246.%' identified by '123456';
grant replication slave on * .* to 'rep1'@'192.168.246.%';
flush privileges;

創(chuàng)建管理賬號

create user 'myadmin'@'192.168.246.%' identified by '123456';
grant all privileges on *.* to 'myadmin'@'192.168.246.%';
flush privileges;

在所有的節(jié)點上都啟用GTID

set @@GLOBAL.ENFORCE_GTID_CONSISTENCY = WARN;
set global ENFORCE_GTID_CONSISTENCY = ON;
set global GTID_MODE = OFF_PERMISSIVE;
set global GTID_MODE = ON_PERMISSIVE;
set global GTID_MODE = ON;

GTID全稱為Global Transaction Identifier, 即全局事務(wù)標識符。用于在binlog中標識唯一的事務(wù),當MySQL Server在寫binlog的時候,會寫一個特殊的binlog Event,指定下一個事務(wù)的GTID。

配置主從復(fù)制的命令

注意,需要在所有的從節(jié)點都配置

change master to master_host='192.168.246.132',master_user='rep1',master_password='123456',master_auto_position=1;

在所有的從節(jié)點中開啟主從復(fù)制

start salve;

然后在從節(jié)點上查看主從復(fù)制的狀態(tài),出現(xiàn)下面的就算成功了。

show slave status \G;

show slave status \G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for source to send event
                  Master_Host: 192.168.246.132
                  Master_User: rep1
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-binlog.000008
          Read_Master_Log_Pos: 157
               Relay_Log_File: salve-relay-bin.000002
                Relay_Log_Pos: 379
        Relay_Master_Log_File: mysql-binlog.000008
             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_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 157
              Relay_Log_Space: 589
              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: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1
                  Master_UUID: 71341b64-4450-11ed-90f4-000c29f2a7f4
             Master_Info_File: mysql.slave_master_info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 1
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
       Master_public_key_path: 
        Get_master_public_key: 0
            Network_Namespace: 
1 row in set, 1 warning (0.01 sec)

ERROR: 
No query specified

測試

我們現(xiàn)在主節(jié)點上創(chuàng)建一張表并且插入一些數(shù)據(jù),來查看從節(jié)點是否有同步數(shù)據(jù);

create database demo2;
use demo2;
create table test1 (tid int);
insert into test1 values(123);

這個時候我們?nèi)墓?jié)點上進行查詢,這個時候我們可以看到數(shù)據(jù)已經(jīng)同步過來了。

我們還可以到我們設(shè)置的data目錄下面查看binlog,

再到數(shù)據(jù)庫里面查看,就可以查看具體的binlog信息了。

mysql> show binlog events in 'mysql-binlog.000008';
+---------------------+-----+----------------+-----------+-------------+-------------------------------------------------------------------+
| Log_name            | Pos | Event_type     | Server_id | End_log_pos | Info                                                              |
+---------------------+-----+----------------+-----------+-------------+-------------------------------------------------------------------+
| mysql-binlog.000008 |   4 | Format_desc    |         2 |         126 | Server ver: 8.0.30, Binlog ver: 4                                 |
| mysql-binlog.000008 | 126 | Previous_gtids |         2 |         157 |                                                                   |
| mysql-binlog.000008 | 157 | Gtid           |         1 |         241 | SET @@SESSION.GTID_NEXT= '71341b64-4450-11ed-90f4-000c29f2a7f4:1' |
| mysql-binlog.000008 | 241 | Query          |         1 |         352 | create database demo2 /* xid=51 */                                |
| mysql-binlog.000008 | 352 | Gtid           |         1 |         436 | SET @@SESSION.GTID_NEXT= '71341b64-4450-11ed-90f4-000c29f2a7f4:2' |
| mysql-binlog.000008 | 436 | Query          |         1 |         554 | use `demo2`; create table test1 (tid int) /* xid=64 */            |
| mysql-binlog.000008 | 554 | Gtid           |         1 |         640 | SET @@SESSION.GTID_NEXT= '71341b64-4450-11ed-90f4-000c29f2a7f4:3' |
| mysql-binlog.000008 | 640 | Query          |         1 |         711 | BEGIN                                                             |
| mysql-binlog.000008 | 711 | Table_map      |         1 |         763 | table_id: 94 (demo2.test1)                                        |
| mysql-binlog.000008 | 763 | Write_rows     |         1 |         803 | table_id: 94 flags: STMT_END_F                                    |
| mysql-binlog.000008 | 803 | Xid            |         1 |         834 | COMMIT /* xid=66 */                                               |
+---------------------+-----+----------------+-----------+-------------+-------------------------------------------------------------------+
11 rows in set (0.00 sec)

總結(jié)

上述就是搭建主從復(fù)制的搭建過程,相信大家跟著教程一步步搭建起來應(yīng)該也可以成功

到此這篇關(guān)于MySQL主從復(fù)制搭建流程分步實現(xiàn)的文章就介紹到這了,更多相關(guān)MySQL主從復(fù)制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論