Skip to content

Commit bf6c7a6

Browse files
committed
dm: translate LOCK TABLES privilege note
1 parent d099ef6 commit bf6c7a6

3 files changed

Lines changed: 25 additions & 3 deletions

File tree

dm/dm-precheck.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,13 @@ tiup dmctl check-task ./task.yaml
6666

6767
* (必须)上游数据库的 dump 权限
6868

69-
- 检查是否有 INFORMATION_SCHEMA 和 dump 表的 SELECT 权限。
70-
- 如果 consistency=flush,将检查是否有 RELOAD 权限。
71-
- 如果 consistency=flush/lock,将检查是否有 dump 表的 LOCK TABLES 权限。
69+
- 检查是否有 `INFORMATION_SCHEMA` 和 dump 表的 `SELECT` 权限。
70+
- 如果 `consistency=flush`,将检查是否有 `RELOAD` 权限。
71+
- 如果 `consistency=lock`,将检查是否有 dump 表的 `LOCK TABLES` 权限。
72+
73+
> **注意:**
74+
>
75+
> `consistency=auto`(默认值)时,DM 会先尝试执行 `FLUSH TABLES WITH READ LOCK` (FTWRL)。如果 FTWRL 不可用,DM 会回退使用 `LOCK TABLES`。这种回退通常发生在托管型 MySQL 服务中,例如 Amazon RDS、Aurora、ApsaraDB RDS for MySQL、Azure Database for MySQL 或 Google Cloud SQL,因为这些服务不允许执行 FTWRL。在这种情况下,运行时需要具备 `LOCK TABLES` 权限,但前置检查当前不会验证该权限。完整的权限列表,请参见 [DM-worker 上游数据库用户权限](/dm/dm-worker-intro.md#上游数据库用户权限)
7276
7377
* (必须)上游 MySQL 多实例分库分表的一致性
7478

dm/dm-worker-intro.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ Binlog replication/sync 处理单元读取上游 MySQL/MariaDB 的 binlog event
5252
| `REPLICATION SLAVE` | Global |
5353
| `REPLICATION CLIENT` | Global |
5454

55+
> **注意:**
56+
>
57+
> 如果从不允许执行 `FLUSH TABLES WITH READ LOCK` (FTWRL) 的托管型 MySQL 服务(例如 Amazon RDS、Aurora、ApsaraDB RDS for MySQL、Azure Database for MySQL 或 Google Cloud SQL)迁移数据,还需要授予 `LOCK TABLES` 权限。使用默认的 `consistency=auto` 设置时,如果 FTWRL 不可用,DM 会回退使用 `LOCK TABLES`
58+
5559
如果要迁移 `db1` 的数据到 TiDB,可执行如下的 `GRANT` 语句:
5660

5761
{{< copyable "sql" >}}
@@ -61,6 +65,12 @@ GRANT RELOAD,REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'your_user'@'your_w
6165
GRANT SELECT ON db1.* TO 'your_user'@'your_wildcard_of_host';
6266
```
6367

68+
对于不允许执行 FTWRL 的托管型 MySQL 服务,还需要授予 `LOCK TABLES` 权限:
69+
70+
```sql
71+
GRANT LOCK TABLES ON db1.* TO 'your_user'@'your_wildcard_of_host';
72+
```
73+
6474
如果还要迁移其他数据库的数据到 TiDB,请确保已赋予这些库跟 `db1` 一样的权限。
6575

6676
### 下游数据库用户权限

dm/quick-start-with-dm.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,10 @@ aliases: ['/docs-cn/tidb-data-migration/dev/quick-start-with-dm/','/docs-cn/tidb
9191
GRANT PROCESS, BACKUP_ADMIN, RELOAD, REPLICATION SLAVE, REPLICATION CLIENT, SELECT ON *.* TO 'tidb-dm'@'%';
9292
```
9393

94+
> **注意:**
95+
>
96+
> 如果 MySQL 源是托管型 MySQL 服务(例如 Amazon RDS、Aurora、ApsaraDB RDS for MySQL、Azure Database for MySQL 或 Google Cloud SQL),还需要授予 `LOCK TABLES` 权限。更多信息,请参见 [DM-worker 上游数据库用户权限](/dm/dm-worker-intro.md#上游数据库用户权限)。
97+
9498
4. 创建示例数据:
9599

96100
```sql
@@ -148,6 +152,10 @@ aliases: ['/docs-cn/tidb-data-migration/dev/quick-start-with-dm/','/docs-cn/tidb
148152
GRANT PROCESS, BACKUP_ADMIN, RELOAD, REPLICATION SLAVE, REPLICATION CLIENT, SELECT ON *.* TO 'tidb-dm'@'%';
149153
```
150154

155+
> **注意:**
156+
>
157+
> 如果 MySQL 源是托管型 MySQL 服务(例如 Amazon RDS、Aurora、ApsaraDB RDS for MySQL、Azure Database for MySQL 或 Google Cloud SQL),还需要授予 `LOCK TABLES` 权限。更多信息,请参见 [DM-worker 上游数据库用户权限](/dm/dm-worker-intro.md#上游数据库用户权限)。
158+
151159
6. 创建示例数据:
152160

153161
```sql

0 commit comments

Comments
 (0)