例如,如果主服务器上的数据库名为 db1,而从服务器上的数据库名为 db2,则可以在使用 CHANGE MASTER TO 命令时指定 MASTER_LOG_FILE 和 MASTER_LOG_POS 参数的值,同时在从服务器上创建 db2 数据库,以便从主服务器复制 db1 数据库中的数据到 db2 数据库中 具体一点呢
时间: 2024-03-12 15:43:21 浏览: 99
好的,让我更具体地举个例子。
假设你要在主服务器上的 `db1` 数据库中创建一个名为 `test_table` 的表,并插入一些测试数据:
```
CREATE TABLE test_table (
id INT PRIMARY KEY,
name VARCHAR(50)
);
INSERT INTO test_table VALUES (1, 'Alice'), (2, 'Bob'), (3, 'Charlie');
```
然后,你需要在从服务器上的 `db2` 数据库中创建相同的 `test_table` 表,并让从服务器从主服务器复制 `db1` 数据库中的数据到 `db2` 数据库中。
首先,在从服务器上创建 `db2` 数据库:
```
CREATE DATABASE db2;
```
然后,在主服务器上使用 `SHOW MASTER STATUS` 命令查看当前的 binlog 日志文件名和位置:
```
SHOW MASTER STATUS;
```
假设输出结果为:
```
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 107 | | | |
+------------------+----------+--------------+------------------+-------------------+
```
则可以在从服务器上使用 `CHANGE MASTER TO` 命令设置主从同步:
```
CHANGE MASTER TO
MASTER_HOST='master_host_name',
MASTER_USER='replication_user_name',
MASTER_PASSWORD='replication_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=107;
```
其中,`master_host_name` 是主服务器的主机名或 IP 地址,`replication_user_name` 和 `replication_password` 分别是在主服务器上用于复制的用户名和密码。
最后,在从服务器上执行 `START SLAVE` 命令开始同步数据:
```
START SLAVE;
```
这样,从服务器就可以从主服务器复制 `db1` 数据库中的数据到 `db2` 数据库中了。你可以在从服务器上使用 `SELECT * FROM db2.test_table` 命令来查看已经复制过来的数据。
阅读全文