mysql replicate-rewrite-db
时间: 2023-08-11 14:05:44 浏览: 222
`replicate-rewrite-db` 是 MySQL 主从复制中的一个参数,用于在从服务器上将复制过来的数据重写到指定的数据库中。
例如,如果主服务器上的数据库名为 `db1`,而从服务器上的数据库名为 `db2`,那么可以使用以下命令将主服务器上的 `db1` 数据库的内容复制到从服务器的 `db2` 数据库中:
```
CHANGE MASTER TO
MASTER_HOST='master_host_name',
MASTER_USER='replication_user_name',
MASTER_PASSWORD='replication_password',
MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=recorded_log_position,
replicate-rewrite-db=db1->db2;
```
在上述命令中,`replicate-rewrite-db=db1->db2` 部分将主服务器上的 `db1` 数据库的名称重写为 `db2`,以便在从服务器上存储相同的数据。
需要注意的是,`replicate-rewrite-db` 参数只适用于复制操作,不适用于其他操作,例如备份和恢复。
相关问题
mysql的replicate-wild-do-table如何过滤多表?
如果需要过滤多个表,可以使用多个`replicate-wild-do-table`参数,每个参数指定一个表名模式。例如,如果要过滤`testdb`数据库中的`table1`和`table2`两个表,可以这样设置:
```
replicate-wild-do-table=testdb.table1
replicate-wild-do-table=testdb.table2
```
这样,在主库上对这两个表的更新操作就不会被复制到从库上。需要注意的是,`replicate-wild-do-table`参数只能过滤掉更新操作,不能过滤掉查询操作。如果需要完全禁止对某些表的访问,可以使用MySQL的访问控制功能。
mysql的replicate-wild-do-table过滤多表参数可以使用逗号分隔吗?
不可以使用逗号分隔。`replicate-wild-do-table`参数不支持逗号分隔,只能使用多个参数的方式来过滤多个表。每个参数指定一个表名模式,如果需要过滤多个表,就需要使用多个参数。例如,如果要过滤`testdb`数据库中的`table1`和`table2`两个表,可以这样设置:
```
replicate-wild-do-table=testdb.table1
replicate-wild-do-table=testdb.table2
```
这样,在主库上对这两个表的更新操作就不会被复制到从库上。需要注意的是,每个参数都会增加一定的配置量,如果需要过滤大量的表,可能会导致配置文件变得很大,不方便维护。
阅读全文