MySQL双主配置详解:Linux环境下的同步设置
需积分: 12 157 浏览量
更新于2024-09-07
收藏 15KB DOCX 举报
"MySQL双主配置教程"
MySQL双主配置是一种高可用性和负载均衡的解决方案,它允许两台MySQL服务器互为主从,数据双向同步。在本配置中,两台服务器A(192.168.2.1)和B(192.168.2.2)都将既是主服务器也是从服务器,任何一台服务器上的数据更改都会被复制到另一台服务器,从而确保数据的一致性。
### 1. 前置条件与环境准备
- **操作系统**: Linux,例如Ubuntu、CentOS等支持MySQL服务的操作系统。
- **MySQL版本**: 在这个示例中使用的是`mysql-5.7.10`,但其他版本也可适用,只需注意不同版本间的配置差异。
- **网络连接**: 两台服务器必须能够相互通信。如果不在同一网段,需要通过路由器进行联通,并确保路由可达。
- **防火墙设置**: 两台服务器的Windows防火墙(如果有)应关闭或配置好相应的端口放行规则,通常MySQL使用3306端口。
### 2. 创建同步用户
为了实现数据同步,需要在每台服务器上创建一个可以相互访问的用户。在这个例子中,我们创建了一个名为`tongbu`的用户,分配了全库权限,并设置了密码`111111`。同时,为了本地管理,也给`root`用户分配了密码。在A服务器上,为B服务器创建用户;在B服务器上,为A服务器创建用户。
```sql
# 在A服务器上为B服务器创建用户
mysql> flush privileges;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'tongbu'@'192.168.2.2' IDENTIFIED BY '111111';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '111111';
mysql> flush privileges;
# 在B服务器上为A服务器创建用户
mysql> flush privileges;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'tongbu'@'192.168.2.1' IDENTIFIED BY '111111';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '111111';
mysql> flush privileges;
```
### 3. 主服务器数据库备份
在开始配置之前,建议对当前的数据进行备份,以防配置过程中发生错误导致数据丢失。
### 4. 修改配置文件
接下来,我们需要编辑MySQL的配置文件(通常是`my.cnf`或`my.ini`),在两台服务器上添加以下参数:
- `log-bin`: 开启二进制日志,这是复制的基础。
- `server-id`: 为每台服务器设置唯一的ID,区分主从。
- `expire-logs-days`: 设置二进制日志的保留天数,防止日志文件过多。
- `replicate-do-db` / `binlog-ignore-db`: 指定需要或忽略复制的数据库。
- `auto-increment-increment` 和 `auto-increment-offset`: 配置自动增长ID的步长和起始值,防止主从服务器生成相同的ID。
对于A服务器(192.168.2.1)的配置:
```ini
[mysqld]
log-bin=mysql-bin
server-id=1
expire-logs-days=100
replicate-do-db=test
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
auto-increment-increment=2
auto-increment-offset=1
```
对于B服务器(192.168.2.2)的配置:
```ini
[mysqld]
log-bin=mysql-bin
server-id=2
expire-logs-days=100
```
### 5. 启动复制
- **在A服务器上**:设置B服务器为它的从服务器。
```sql
mysql> CHANGE MASTER TO MASTER_HOST='192.168.2.2', MASTER_USER='tongbu', MASTER_PASSWORD='111111', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=4;
mysql> START SLAVE;
```
- **在B服务器上**:设置A服务器为它的从服务器,步骤类似。
### 6. 验证复制
确认主从同步是否正常工作,可以查询每个服务器的状态。
```sql
mysql> SHOW SLAVE STATUS\G
```
检查`Slave_IO_Running`和`Slave_SQL_Running`都为`Yes`,表明复制正在运行。
### 7. 日常维护
在日常运维中,监控复制状态、定期检查错误日志以及调整复制配置以适应业务变化是必要的。
### 注意事项
- 数据库同步可能会引入延迟,特别是在大量写操作的场景下。
- 配置过程中务必小心,错误的配置可能导致数据丢失或不一致。
- 对于生产环境,强烈建议使用更安全的密码策略,并避免明文存储。
- 考虑到性能和安全性,可能需要进一步优化配置,如使用专用的复制用户,限制其权限,以及调整复制延迟策略。
MySQL双主配置完成后,两台服务器将能够相互复制数据,提高系统的可靠性和容错性。然而,这种配置也需要对MySQL有深入理解,以确保在故障切换或恢复时能正确处理。
2022-08-04 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
wobuzhidaonishixiang
- 粉丝: 0
- 资源: 2
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍