# **练习-2 :  使用 `TiDB Binlog` 进行数据同步复制**

## 概述
+ 在本练习中，您将使用 TiDB Binlog 进行 TiDB 数据库到 MySQL 数据库的同步复制｡

## 实验环境要求
+ 1. 注意，您的实验环境（包括IP，端口号，用户名，密码和目录）可能和手册不同。
+ 2. 可以连接到实验用虚拟机。
+ 3. TiDB 数据库提前部署完毕。
+ 4. 清理掉之前的实验数据。
+ 5. 需要完成练习-1。

## 步骤

-----------------------------------------------
#### 1. 确认复制数据准备完毕｡
+ **登录到源端（上游） TiDB 数据库，查询 test 数据库下表 T，如下:**  
    ```
    # mysql -h172.31.0.135 -P4000 -uroot -ptidb
    ```
    ```sql
    mysql> select * from test.T;
    +----+-------+
    | id | name  |
    +----+-------+
    |  1 | Tom   |
    |  2 | Jack  |
    |  3 | Frank |
    +----+-------+
    3 rows in set (0.00 sec)
    ```

+ **登录到目标端（下游） MySQL 数据库，查询 test 数据库下表 T，如下:**
    ```
    # mysql -h172.31.0.135 -P3306 -uroot -pmysql
    ```
    ```sql
    mysql> select * from test.T;
    +----+-------+
    | id | name  |
    +----+-------+
    |  1 | Tom   |
    |  2 | Jack  |
    |  3 | Frank |
    +----+-------+
    3 rows in set (0.00 sec)
    ```
-----------------------------------------------
#### 2. 使用 TiDB Binlog 进行复制数据
+ **登录到源端（上游） TiDB 数据库，并插入一行数据，如下:**
    ```
    # mysql -h172.31.0.135 -P4000 -uroot -ptidb
    ```
    ```sql
    mysql> insert into test.T select 4, 'Tony';
    Query OK, 1 row affected (0.01 sec)
    Records: 1  Duplicates: 0  Warnings: 0

    mysql> select * from test.T;
    +----+-------+
    | id | name  |
    +----+-------+
    |  1 | Tom   |
    |  2 | Jack  |
    |  3 | Frank |
    |  4 | Tony  |
    +----+-------+
    4 rows in set (0.00 sec)
    ```

+ **登录到目标端（下游） MySQL 数据库，确认数据行是否插入，如下:**
    ```
    # mysql -h172.31.0.135 -P3306 -uroot -pmysql
    ```
    ```sql
    mysql> select * from test.T;
    +----+-------+
    | id | name  |
    +----+-------+
    |  1 | Tom   |
    |  2 | Jack  |
    |  3 | Frank |
    |  4 | Tony  |
    +----+-------+
    4 rows in set (0.00 sec)
    ```
    
+ **通过结果，我们验证了 TiDB 数据库的数据变更已经复制到了 MySQL 数据库中｡**
-----------------------------------------------