## 模块 3：在源 MySQL 中进行一些更改

### 步骤 1. 连接到 TiUP 控制机，然后连接到 MySQL server

+ 点击 [终端 2](ssh://monitor1-ssh#2) 打开一个新的终端，然后连接到 MySQL server。

+ 连接到 MySQL server 节点。

   ```bash
   ssh -i /home/ec2-user/.ssh/pe-class-key-${LAB:REGION_NAME}.pem rocky@${HOST_MYSQL1_PRIVATE_IP}
   ```

   ```output
   Last login: Thu Aug  1 11:58:47 2024 from 10.90.4.90
   [rocky@ip-10-90-1-235 ~]$
   ```

  + 通过数据库会话连接到 MySQL server。

   ```bash
   mysql -h localhost -P 3306 -u root -pq1w2e3R4_ --connect-expired-password
   ```

   ```output
   mysql>
   ```

### 步骤 2. 在 MySQL 执行 UPDATE

+ 在[终端 2](ssh://monitor1-ssh#2)，将特定行的列 `c` 设置为 `Changed on MySQL`。

   ```sql
   SELECT * FROM sbtest.sbtest1 WHERE id=1;
   UPDATE sbtest.sbtest1 SET c='Changed on MySQL' WHERE id=1;
   SELECT * FROM sbtest.sbtest1 WHERE id=1;
   ```

   ```output
   mysql> SELECT * FROM sbtest.sbtest1 WHERE id=1;
   +----+---------+-------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+
   | id | k       | c                                                                                                                       | pad                                                         |
   +----+---------+-------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+
   |  1 | 5014614 | 68487932199-96439406143-93774651418-41631865787-96406072701-20604855487-25459966574-28203206787-41238978918-19503783441 | 22195207048-70116052123-74140395089-76317954521-98694025897 |
   +----+---------+-------------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------+
   1 row in set (0.00 sec)

   mysql> UPDATE sbtest.sbtest1 SET c='Changed on MySQL' WHERE id=1;
   Query OK, 1 row affected (0.00 sec)
   Rows matched: 1  Changed: 1  Warnings: 0

   mysql> SELECT * FROM sbtest.sbtest1 WHERE id=1;
   +----+---------+------------------+-------------------------------------------------------------+
   | id | k       | c                | pad                                                         |
   +----+---------+------------------+-------------------------------------------------------------+
   |  1 | 5014614 | Changed on MySQL | 22195207048-70116052123-74140395089-76317954521-98694025897 |
   +----+---------+------------------+-------------------------------------------------------------+
   1 row in set (0.00 sec)
   ```

### 步骤 3. 连接到 TiUP 控制机，然后连接到 TiDB 实例

+ 点击 [终端 3](ssh://monitor1-ssh#3) 打开一个新的终端，然后连接到 TiDB 集群。

+ 连接到 TiDB 集群。

   ```bash
   export MYSQL_PS1="tidb:db1> "
   mysql -h ${HOST_DB1_PRIVATE_IP} -P 4000 -u root
   ```

   ```output
   tidb:db1>
   ```

### 步骤 4. 从 TiDB 观察 UPDATE 操作结果

+ 在[终端 3](ssh://monitor1-ssh#3)，观察来自 TiDB 端的 `UPDATE` 结果，该更改已从 MySQL 同步过来。

   ```sql
   SELECT * FROM sbtest.sbtest1 WHERE id=1;
   ```

   ```output
   tidb:db1> SELECT * FROM sbtest.sbtest1 WHERE id=1;
   +----+---------+------------------+-------------------------------------------------------------+
   | id | k       | c                | pad                                                         |
   +----+---------+------------------+-------------------------------------------------------------+
   |  1 | 5014614 | Changed on MySQL | 22195207048-70116052123-74140395089-76317954521-98694025897 |
   +----+---------+------------------+-------------------------------------------------------------+
   1 row in set (0.01 sec)
   ```

### 步骤 5. 在 MySQL 中执行 INSERT 操作

+ 在[终端 2](ssh://monitor1-ssh#2)（MySQL 端），插入一行新数据。

   ```sql
   INSERT INTO sbtest.sbtest1 (k, c, pad) VALUES (102, 'Insert on MySQL', 'Insert on MySQL');
   SELECT * FROM sbtest.sbtest1 WHERE k=102;
   ```

   ```output
   mysql> INSERT INTO sbtest.sbtest1 (k, c, pad) VALUES (102, 'Insert on MySQL', 'Insert on MySQL');
   Query OK, 1 row affected (0.00 sec)

   mysql> SELECT * FROM sbtest.sbtest1 WHERE k=102;
   +----------+-----+-----------------+-----------------+
   | id       | k   | c               | pad             |
   +----------+-----+-----------------+-----------------+
   | 10000002 | 102 | Insert on MySQL | Insert on MySQL |
   +----------+-----+-----------------+-----------------+
   1 row in set (0.00 sec)
   ```

### 步骤 6. 从 TiDB 观察 INSERT 操作结果

+ 在[终端 3](ssh://monitor1-ssh#3)（TiDB 端），观察来自 TiDB 端的 `INSERT` 结果，该更改已从 MySQL 同步过来。

   ```sql
   SELECT * FROM sbtest.sbtest1 WHERE k=102;
   ```

   ```output
   tidb:db1> SELECT * from sbtest.sbtest1 where k=102;
   +----------+-----+-----------------+-----------------+
   | id       | k   | c               | pad             |
   +----------+-----+-----------------+-----------------+
   | 10000002 | 102 | Insert on MySQL | Insert on MySQL |
   +----------+-----+-----------------+-----------------+
   1 row in set (0.00 sec)
   ```

+ 如果时间允许，在 MySQL 端尝试更多修改，并从 TiDB 端观察结果。
