數(shù)據(jù)庫主從復(fù)制簡單配置

1、主從原理

從《高性能mysql》書中講解主從原理大致有三個步驟:

在主庫上把數(shù)據(jù)更改記錄到二進(jìn)制日志中(Binary Log)中,這些記錄稱為二進(jìn)制日志事件。
從庫通過IO線程將主庫上的日志復(fù)制到自己的中繼日志(Relay Log)中。
從庫通過SQL線程讀取中繼日志中的事件,將其重放到自己數(shù)據(jù)上。
原理圖為:


2、主從配置

演示的環(huán)境如下:

名稱 IP
msyql-master(主庫) 192.168.82.112
mysql-slave(從庫) 192.168.194.12

(1)、配置主庫

  • 修改my.cnf文件,在[mysqld]加入下面的內(nèi)容:

    # 服務(wù)的唯一編號
    server-id = 1
    
    # 開啟mysql binlog功能
    log-bin = mysql-bin
    
    # binlog記錄內(nèi)容的方式,記錄被操作的每一行
    binlog_format = ROW
    
    # 減少記錄日志的內(nèi)容,只記錄受影響的列
    binlog_row_image = minimal
    
    # 指定需要復(fù)制的數(shù)據(jù)庫名為mytest
    binlog-do-db = mytest
    
    
  • 修改好配置文件,重啟mysql服務(wù)

    service mysqld restart
    
    
  • 創(chuàng)建從庫同步數(shù)據(jù)的賬號

    grant replication slave on *.* to 'test123'@'192.168.197.136' identified by 'test@123';
    flush privileges;
    
    

    注意:上面這兩個命令是在mysql的終端執(zhí)行的。

  • 查看主庫的狀態(tài):

    mysql的終端執(zhí)行:

    show master status\G;
    
    

    返回的信息為:

    *************************** 1\. row ***************************
                 File: mysql-bin.000071
             Position: 623
         Binlog_Do_DB: mytest
     Binlog_Ignore_DB: 
    Executed_Gtid_Set: 
    1 row in set (0.00 sec)
    
    

注意:這個623和mysql-bin.000071配置從庫需要用到

(2)、配置從庫

  • 修改my.cnf文件,在[mysqld]加入下面的內(nèi)容:

    # 服務(wù)的唯一編號
    server-id = 2
    
    # 開啟mysql binlog功能
    log-bin = mysql-bin
    
    # binlog記錄內(nèi)容的方式,記錄被操作的每一行
    binlog_format = ROW
    
    # 減少記錄日志的內(nèi)容,只記錄受影響的列
    binlog_row_image = minimal
    
    # 指定需要復(fù)制的數(shù)據(jù)庫名為mytest
    replicate-do-db = mytest
    
    
  • 修改好配置文件,重啟mysql服務(wù)

    service mysqld restart
    
    
  • 執(zhí)行同步命令

    mysql的終端執(zhí)行:

    # 設(shè)置主服務(wù)器ip,同步賬號密碼,同步位置
    change master to master_host='192.168.82.112',master_user='test123',master_password='test@123',master_log_file='mysql-bin.000071',master_log_pos=623;
    
    # 開啟同步功能
    start slave;
    
    
  • 查看從庫的狀態(tài)

    mysql的終端執(zhí)行:

    show slave status\G;
    
    

    返回信息為:

image

注意:Slave_IO_Running和Slave_SQL_Running的狀態(tài)都為Yes時,說明從庫配置成功。

3、測試

(1)進(jìn)入主庫的mytest數(shù)據(jù)庫,

use mytest;

(2)、在主庫上的mytest數(shù)據(jù)庫創(chuàng)建comm_config表,即:

CREATE TABLE comm_config (configId varchar(200) NOT NULL ,configValue varchar(1024) DEFAULT NULL ,description varchar(2000) DEFAULT NULL ,PRIMARY KEY (configId)) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

(3)、在主庫上往comm_config表中插入一條記錄,即:

insert into comm_config(configId, configValue, description) values('name', '主從復(fù)制', '測試一下');

(4)、在從庫上進(jìn)入mytest數(shù)據(jù)庫,并查看數(shù)據(jù)表

use mytest;
show tables;

(5)、在從庫上查看jgyw模式下的表及數(shù)據(jù),即:

use jgyw;
show tables;

結(jié)果為:


image.png

說明表同步好了,再查看數(shù)據(jù),即:

select * from comm_config;

結(jié)果為:

+----------+--------------+--------------+
| configId | configValue  | description  |
+----------+--------------+--------------+
| name     | 主從復(fù)制     | 測試一下     |
+----------+--------------+--------------+
1 row in set (0.00 sec)

說明數(shù)據(jù)也同步過來了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容