天天看點

RDS資料庫和ECS自建資料庫主從複制,資料同步

原理和需求就不多說了 直接說實作步驟。

1.登入RDS,增加賬号并于賬号賦予資料庫相應權限,

  1. RDS資料庫和ECS自建資料庫主從複制,資料同步

2.登入需要複制的資料庫,執行 show master status 檢視file和postion的值

RDS資料庫和ECS自建資料庫主從複制,資料同步

3.配置你要複制到的從庫資料通路權限(資料安全性-添加白名單,就是把你從庫的伺服器ip添加到白名單)

RDS資料庫和ECS自建資料庫主從複制,資料同步

導出一份資料主庫資料 導入到從庫上,保持主從庫的資料庫名稱和表及資料一緻。

4.登入從庫伺服器,以centos 7為例,設定 vim /etc/my.cnf 檔案

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

pid-file=/var/lib/mysql/mysqld.pid

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

group_concat_max_len=2000000

server_id=211 #伺服器id,不要和主庫重複

read_only = 1

replicate-do-db = yiside_bi #需要同步的資料庫

replicate-ignore-db = mysql #不需要同步的資料庫

replicate-ignore-db = information_schema #不需要同步的資料庫

replicate-ignore-db = performance_schema #不需要同步的資料庫

binlog_format = ROW

log-bin = mysql-bin #開啟二進制日志功能,binlog資料位置

log-bin-index = mysql-bin.index

relay-log = relay-log #relay-log日志記錄的是從伺服器I/O線程将主伺服器的二進制日志讀取過來記錄到從伺服器本地檔案#然後SQL線程會讀取relay-log日志的内容并應用到從伺服器

relay_log_index = relay-log.index

gtid_mode=on

enforce_gtid_consistency=on #隻記錄對基于GTID的複制安全

log-slave-updates = 1 #允許下端接入slave

max_allowed_packet=16M

5.重新啟動mysql , service mysqld start (啟動方法有很多,隻要能重新啟動就行)

  1. 登入從庫 建立使用者

    change master to MASTER_HOST='rm-2ze1lm67a...', #主庫位址

master_user='yiside_bi', #設定的授權的主庫賬戶

master_password='Yiside_bi', #設定的授權的主庫密碼

MASTER_LOG_FILE='mysql-bin.000783', #主庫的file

MASTER_LOG_POS=636125; #主庫的postion

7.指令行登入mysql,mysqld -uroot -p 資料密碼

  1. 執行start slave;啟動

    9.在執行show slave statusG; 檢視狀态

  2. Slave_IO_Running: Yes
    Slave_SQL_Running: Yes
        表示設定成功