最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL互為主從數(shù)據(jù)同步部署操作方式

 更新時間:2025年10月21日 09:44:58   作者:玄骨小子  
本文介紹了在兩臺MySQL服務器間配置互為主從,實現(xiàn)高可用性和數(shù)據(jù)冗余,通過修改配置文件、創(chuàng)建授權(quán)用戶及主從設置,實現(xiàn)了雙向數(shù)據(jù)同步,有效提升了數(shù)據(jù)庫的可靠性

在MySQL數(shù)據(jù)庫管理中,實現(xiàn)互為主從的配置是一種常見的高可用性和數(shù)據(jù)冗余策略。

這種配置允許兩個MySQL服務器相互復制數(shù)據(jù),每個服務器既是對方的主服務器也是從服務器。

這樣,無論哪個服務器發(fā)生故障,另一個都可以接管,保證數(shù)據(jù)的持續(xù)可用性和一致性。

一、環(huán)境準備

  • 準備兩臺虛擬機(192.168.4.51 192.168.4.52)
  • 關(guān)閉防火墻和selinux
  • 確保兩臺虛擬機網(wǎng)絡互通
  • 兩臺虛擬機都安裝了MySQL(5.7及以上的版本)

二、配置互為主從

1.編輯/etc/my.cnf文件

vim /etc/my.cnf

在[mysqld]模塊下添加以下代碼段

[mysqld]
server-id=51  #標識
log_bin=/var/lib/mysql/mysql_log_bin  #開啟binlog并指定路徑
binlog_format=mixed  #binlog 格式(mixed 兼容 row 和 statement)
log_slave_updates  #開啟主從
auto_increment_increment = 2 #主鍵自增量
auto_increment_offset = 1 #主鍵起始偏量

兩臺虛擬機操作一樣 只是主鍵起始偏量不同為了避免主鍵相同而讓其錯開

讓51主機的主鍵成 1 , 3 ,5 ,7…

而52主機的主鍵成 2 , 4, 6, 8…

vim /etc/my.cnf
[mysqld]
server-id=52  #標識
log_bin=/var/lib/mysql/mysql_log_bin  #開啟binlog并指定路徑
binlog_format=mixed  #binlog 格式(mixed 兼容 row 和 statement)
log_slave_updates  #開啟主從
auto_increment_increment = 2 #主鍵自增量
auto_increment_offset = 2 #主鍵起始偏量

重啟MySQL服務

[root@host51 ~]# systemctl restart mysqld 

2.創(chuàng)建授權(quán)用戶

兩臺虛擬機操作一樣

mysql -uroot -p你的密碼
創(chuàng)建連接用戶
mysql> create user 'repl'@'%' identified by '123qqq...A';
Query OK, 0 rows affected (0.00 sec)
授權(quán)連接用戶
mysql>  grant replication slave on *.* to 'repl'@'%';
Query OK, 0 rows affected (0.00 sec)
刷新權(quán)限
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

3.查看binlog日志信息

查看192.168.4.51

mysql> show master status;
+----------------------+----------+--------------+------------------+-------------------+
| File                 | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------------+----------+--------------+------------------+-------------------+
| mysql_log_bin.000004 |     1007 |              |                  |                   |
+----------------------+----------+--------------+------------------+-------------------+
1 row in set (0.01 sec)

查看192.168.4.52

mysql> show master status
    -> ;
+----------------------+----------+--------------+------------------+-------------------+
| File                 | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+----------------------+----------+--------------+------------------+-------------------+
| mysql_log_bin.000004 |     1007 |              |                  |                   |
+----------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

4.配置主從

首先在51主機上配置(52為主機)

mysql> change master to
master_host='192.168.4.52', #設置主的IP地址
master_user='repl', #設置連接用戶名
master_password='123qqq...A', #設置連接用戶密碼
master_log_file='mysql_log_bin.000004', #設置binlog文件名
master_log_pos=1007; #設置binlog 同步位置
Query OK, 0 rows affected, 2 warnings (0.00 sec)

其次再在52主機上配置(51為主機)

mysql> change master to 
master_host='192.168.4.51',
master_user='repl',
master_password='123qqq...A',
master_log_file='mysql_log_bin.000004',
master_log_pos=1007;
Query OK, 0 rows affected, 2 warnings (0.01 sec)

啟動并查看

mysql> start slave ;
Query OK, 0 rows affected (0.00 sec)

mysql> show  slave status\G ;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.4.52
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql_log_bin.000004
          Read_Master_Log_Pos: 1007
               Relay_Log_File: host51-relay-bin.000003
                Relay_Log_Pos: 324
        Relay_Master_Log_File: mysql_log_bin.000004
             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: 1007
              Relay_Log_Space: 702
              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: 52
                  Master_UUID: 888f4a92-acd3-11f0-8b2a-000c29a32fbd
             Master_Info_File: /var/lib/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave 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: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.00 sec)

只要Slave_IO_Running: Yes與Slave_SQL_Running: Yes都為yes即為同步成功

  • Slave_IO_Running: Yes – IO 線程正常(負責拉取主庫binlog)
  • Slave_SQL_Running: Yes– SQL 線程正常(負責執(zhí)行同步的 SQL)

三、同步測試

在51主機上創(chuàng)建庫表并插入數(shù)據(jù)

mysql> create database db1;
Query OK, 1 row affected (0.00 sec)

mysql> create table db1.user(id int  primary key auto_increments);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into db1.user values(1);
Query OK, 1 row affected (0.00 sec)

在52主機上查詢是否數(shù)據(jù)同步

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

mysql> select * from db1.user;
+------+
| id   |
+------+
|  1   |
+------+
1 row in set (0.00 sec)

然后再在52主機上創(chuàng)建庫表并插入數(shù)據(jù)

mysql> create database db2;
Query OK, 1 row affected (0.00 sec)

mysql> create table db2.user(id int  primary key auto_increments);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into db2.user values(2);
Query OK, 1 row affected (0.00 sec)

在51主機上查詢是否數(shù)據(jù)同步

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| db1                |
| db2                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

mysql> select * from db2.user;
+------+
| id   |
+------+
|  2   |
+------+
1 row in set (0.00 sec)

可看到兩次數(shù)據(jù)的同步都成功了

至此互為主從配置成功數(shù)據(jù)同步成功!

總結(jié)

通過以上步驟我們完成了MySQL的互為主從配置并實現(xiàn)數(shù)據(jù)同步。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • MySQL數(shù)據(jù)庫事務隔離級別詳解

    MySQL數(shù)據(jù)庫事務隔離級別詳解

    這篇文章主要介紹了MySQL數(shù)據(jù)庫事務隔離級別詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • mysql5.7 設置遠程訪問的實現(xiàn)

    mysql5.7 設置遠程訪問的實現(xiàn)

    這篇文章主要介紹了mysql5.7 設置遠程訪問的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • Mysql中的SQL約束Constraint有哪幾種

    Mysql中的SQL約束Constraint有哪幾種

    這篇文章主要介紹了Mysql中的SQL約束Constraint有哪幾種,約束是為了使表中的數(shù)據(jù)有效,常見的約束有非空約束、唯一性約束、主鍵約束、外鍵約束、檢查約束,需要的朋友可以參考下
    2024-01-01
  • 教你如何在?MySQL?數(shù)據(jù)庫中支持完整的Unicode

    教你如何在?MySQL?數(shù)據(jù)庫中支持完整的Unicode

    UTF-8?是一種可變寬度編碼,它使用一到四個?8?位字節(jié)對每個符號進行編碼,永遠不要在MySQL中使用?utf8——總是使用?utf8mb4,對mysql支持?Unicode相關(guān)知識感興趣的朋友一起看看吧
    2023-01-01
  • Ubuntu 18.04配置mysql以及配置遠程連接的步驟

    Ubuntu 18.04配置mysql以及配置遠程連接的步驟

    這篇文章主要給大家介紹了關(guān)于Ubuntu 18.04配置mysql以及配置遠程連接的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-07-07
  • mysql實用技巧之比較兩個表是否有不同數(shù)據(jù)的方法分析

    mysql實用技巧之比較兩個表是否有不同數(shù)據(jù)的方法分析

    這篇文章主要介紹了mysql實用技巧之比較兩個表是否有不同數(shù)據(jù)的方法,結(jié)合實例形式分析了mysql數(shù)據(jù)表比較的相關(guān)操作技巧與注意事項,需要的朋友可以參考下
    2019-12-12
  • MySQL允許遠程連接的配置指南

    MySQL允許遠程連接的配置指南

    MySQL 是一個廣泛使用的開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在實際開發(fā)中,我們經(jīng)常需要從本地或外部服務器連接到 MySQL 數(shù)據(jù)庫,下面我們就來看看如何配置 MySQL 以允許遠程連接
    2025-06-06
  • CentOS 7下MySQL服務啟動失敗的快速解決方法

    CentOS 7下MySQL服務啟動失敗的快速解決方法

    CentOS 7下MySQL服務啟動失敗怎么辦?下面小編就為大家?guī)硪黄狢entOS 7下MySQL服務啟動失敗的快速解決方法?,F(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-03-03
  • MySQL常用登錄命令小結(jié)

    MySQL常用登錄命令小結(jié)

    本文主要介紹了MySQL常用登錄命令小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • MySQL GROUP_CONCAT限制解決方案

    MySQL GROUP_CONCAT限制解決方案

    這篇文章主要介紹了MySQL GROUP_CONCAT限制解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值
    2020-09-09

最新評論

门头沟区| 盘锦市| 龙南县| 无为县| 武胜县| 会理县| 仁怀市| 门源| 昭通市| 新和县| 昭通市| 镇江市| 岐山县| 津南区| 武陟县| 华阴市| 裕民县| 雷州市| 炉霍县| 云南省| 临漳县| 睢宁县| 丰镇市| 定兴县| 隆德县| 忻州市| 永年县| 彭州市| 怀集县| 五指山市| 承德市| 鄂温| 巴里| 嵩明县| 綦江县| 从化市| 宁波市| 克东县| 临洮县| 遂溪县| 台中市|