在MySQL中,InnoDB引擎是默认的存储引擎,支持事务处理、行级锁定和外键等高级数据库功能。主从复制是MySQL数据库常用的一种数据同步方式,用于实现数据的备份、读写分离等目的。下面我将简要介绍如何设置InnoDB引擎数据库的主从复制。
### 步骤一:配置主服务器(Master)
1. **修改配置文件**(通常是`my.cnf`或`my.ini`):
[mysqld]
server-id = 1
log-bin = mysql-bin
binlog_format = MIXED
relay-log = relay-bin
relay-log-index = relay-bin.index
expire_logs_days = 10
max_binlog_size = 100M
注意:`server-id`必须唯一,`log-bin`启用二进制日志。
2. **创建复制用户**:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
注意:`'%'`表示从任何主机连接,实际使用时请替换为具体的IP地址或主机名以提高安全性。
3. **查看主服务器状态**:
SHOW MASTER STATUS;
记录下`File`和`Position`的值,这些值将在配置从服务器时使用。
### 步骤二:配置从服务器(Slave)
1. **修改配置文件**:
[mysqld]
server-id = 2
relay-log = relay-bin
relay-log-index = relay-bin.index
注意:`server-id`同样必须唯一,且不能与主服务器的`server-id`相同。
2. **配置从服务器以连接到主服务器**:
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_USER='replicator',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=recorded_log_position;
将`master_host`、`recorded_log_file_name`和`recorded_log_position`替换为实际的值。
3. **启动从服务器复制**:
START SLAVE;
4. **检查从服务器状态**:
SHOW SLAVE STATUS\G
查看`Slave_IO_Running`和`Slave_SQL_Running`是否都为`Yes`,以及是否有错误信息。
### 注意事项
- 确保主从服务器的MySQL版本兼容。
- 定期检查二进制日志和中继日志的磁盘空间使用情况。
- 监控复制延迟和错误,确保数据同步的及时性和准确性。
以上步骤概述了如何设置InnoDB引擎数据库的主从复制。根据具体的环境和需求,可能还需要进行额外的配置和优化。