在 Windows 10 上配置 MySQL 读写分离和主从复制过滤需要在主服务器和从服务器上进行配置。以下是步骤以及配置文件示例:
步骤 1:配置主服务器
1. 打开主服务器的 my.ini 配置文件。您可以在MySQL 安装目录的 my.ini 中找到它。
2. 添加以下选项以启用二进制日志和配置需要复制的数据库:
#启用二进制日志
log-bin=master-bin
server-id=1
#需要复制的数据库
binlog-do-db=mydb
binlog-do-db=mydb2
binlog-do-db=mydb3
在上述示例中,mydb 是需要复制的数据库名称。
3. 保存并关闭 my.ini 文件。
4. 重启 MySQL 服务器,以使更改生效。
步骤 2:配置从服务器
1. 打开从服务器的 my.ini 配置文件,同样可以在MySQL 安装目录的 my.ini 中找到。
2. 添加以下选项以启用主从复制,配置从服务器ID,并配置需要复制的数据库:
#启用主从复制
log-bin=slave-bin
server-id=2
#需要复制的数据库
replicate-do-db=mydb
replicate-do-db=mydb2
replicate-do-db=mydb3
3. 保存并关闭 my.ini 文件。
4. 重启 MySQL 服务器,以使更改生效。
步骤 3:创建复制用户
在主服务器上创建一个复制用户,该用户将用于从服务器连接到主服务器进行复制操作。使用 MySQL 客户端连接到主服务器并执行以下 SQL 命令:
CREATE USER 'replication'@'从服务器 IP 地址' I
DENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repli
cation'@'从服务器 IP 地址';
将 '从服务器 IP 地址' 替换为从服务器的实际 IP 地址,并设置适当的密码。
步骤 4:配置从服务器连接主服务器
1. 连接到从服务器的 MySQL 客户端。
2. 执行以下 SQL 命令以配置从服务器连接到主服务器:
CHANGE MASTER TO
MASTER_HOST='主服务器 IP 地址',
MASTER_PORT=主服务器端口,
MASTER_USER='replication',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='主服务器的二进制日志文件名', MASTER_LOG_POS=主服务器的二进制日志位置;
确保将上述命令中的参数替换为实际的主服务器 IP地址、端口、复制用户和主服务器的二进制日志文件名和位置。
3. 启动从服务器的复制:
START SLAVE;
步骤 5:测试读写分离
您现在已经配置了主从复制,从服务器会复制主服务器的数据。要实现读写分离,您可以将读操作(SELECT 语句)路由到从服务器,而写操作(INSERT、UPDATE、 DELETE 等)仍然发送到主服务器。这可以通过应用程序层的负载均衡来实现,也可以使用数据库中间件或代理工具来实现。
现在,当主服务器上的数据更新时,从服务器上的复制将继续工作,并复制来自主服务器的更改。任何添加到 binlog-do-db 参数中指定的数据库的更改都将被复制。
请注意,一旦配置了复制过滤,只有特定数据库中的更改才会被复制。如果未来需要复制其他数据库,您需要修改相应的配置并重新启动主从服务器。如果不修改配置,将忽略那些未包含在复制过滤中的数据库的更改。