mysql主从复制虚拟机
时间: 2025-01-04 12:33:21 浏览: 7
### 配置虚拟机环境中的MySQL主从复制
#### 虚拟机准备与克隆
为了简化部署过程,可以利用虚拟机克隆技术来快速建立两个具有相同初始配置的Linux系统实例[^1]。
#### 安装并启动MySQL服务
确保每台虚拟机上的MySQL已成功安装并且能够正常运行。这一步骤对于后续操作至关重要。
#### 开启二进制日志记录功能
编辑MySQL配置文件`/etc/mysql/mysql.conf.d/mysqld.cnf`,找到 `[mysqld]`部分,并添加如下参数以启用二进制日志以及设定唯一的 `server-id`:
```ini
[mysqld]
server-id=1 # 对于主服务器应设为不同的唯一ID
log_bin=/var/log/mysql/mysql-bin.log # 设置二进制日志的位置
```
保存更改后重启MySQL服务使新设置生效:
```bash
sudo systemctl restart mysql.service
```
验证二进制日志是否已被激活可以通过执行SQL命令 `SHOW VARIABLES LIKE 'log_bin';` 来确认其返回值为ON[^3]。
#### 创建同步账户
在主数据库上创建一个专门用于数据同步的新用户,并赋予必要的权限以便它可以访问其他节点的数据表结构和内容变化情况:
```sql
CREATE USER 'replication_user'@'%' IDENTIFIED BY 'your_secure_password';
GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%';
FLUSH PRIVILEGES;
```
此步骤允许远程连接到主库进行读取变更信息的操作。
#### 获取当前状态位置
锁定所有表格防止写入动作影响初始化过程中的一致性;随后查询最新的二进制日志坐标点作为未来回放的基础起点之一:
```sql
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
```
记住显示出来的File名(即日志文件名称)及其Position编号(偏移量),稍后将在从库端指定这些细节[^5]。
#### 进行物理备份或逻辑导出
建议在此阶段对整个数据库做一次完整的快照拷贝或者通过mysqldump工具获取一份可移植性的转储文件,从而保证源目标两端之间存在一致的状态基础。
#### 在从库应用上述相同的MySQL版本和服务配置调整
同样地,在另一台机器重复前面提到过的关于开启binlog、定义unique ID等措施,只是这里的`server-id`应当不同于主库所使用的数值。
#### 启动从属关系
解锁之前被固定的表单资源,接着切换至备用站点实施关联指令,指明上游主机的具体网络定位连同先前取得的日志索引详情:
```sql
UNLOCK TABLES;
CHANGE MASTER TO
MASTER_HOST='primary_server_ip',
MASTER_USER='replication_user',
MASTER_PASSWORD='your_secure_password',
MASTER_LOG_FILE='recorded_filename_from_SHOW_MASTER_STATUS',
MASTER_LOG_POS=position_number;
START SLAVE;
```
最后检查slave线程的工作状况确保一切顺利运作无误:
```sql
SHOW SLAVE STATUS\G
```
如果看到Slave_IO_Running 和 Slave_SQL_Running 的值均为 Yes,则表明已经建立了成功的主从架构。
阅读全文