环境
角色 | 服务器配置 | 操作系统版本 | 公网IP |
---|---|---|---|
即作为 slave 也作为 master |
阿里云ECS实例 server1 |
Ubuntu 14.04 mysql 5.5.44 |
47.101.70.109 |
即作为 slave 也作为 master |
阿里云ECS实例 server2 |
Ubuntu 14.04 mysql 5.5.44 |
106.14.151.244 |
修改配置文件
先从 server1 开始配置,server2 做同样配置。
- 修改 /etc/mysql/my.cnf
1 | # 不指定远程访问的IP |
- 重启本机 mysql
1 | $ service mysql restart |
开启远程访问
登录 server1->mysql,server2 做同样配置。
1 | # 安装完mysql之后,如果忘记密码,可以使用默认账户登录mysql,然后对root账户更改密码 |
配置同步的Master
- 登录 server1->mysql
1 | # 查看master状态 |
- 登录 server2->mysql
1 | # 查看 master 状态 |
- 切换 server1->mysql
1 | # 创建数据库test |
- 切换 server2->mysql
1 | # 配置master |
上面返回的状态中,查看 Slave_IO_Running 和 Slave_SQL_Running 的状态是否为 Yes 。只有两个参数均显示 Yes,表示配置成功,完成主从同步功能。否则,请根据报错信息,定位错误原因,并进行修改。
- 参数说明
以下使用 server1 的参数配置来进行说明
参数名 | 参数值 | 说明 |
---|---|---|
MASTER_HOST | 106.14.151.244 | 同步的服务器IP,这里为 server2 的公网IP |
MASTER_USER | root | 同步服务器的 mysql 用户名 |
MASTER_PASSWORD | 123456 | 同步服务器的 mysql 密码 |
MASTER_PORT | 3306 | 数据库端口 |
MASTER_LOG_FILE | master_02.000015 | 对应 server2 的 File 名 |
MASTER_LOG_POS | 107 | 对应 server2 的 Position |
MASTER_CONNECT_RETRY | 2 | 对应 server2 的 server-id |
Slave_IO_Running | Yes | slave 与 master 的IO通信状态 |
Slave_SQL_Running | Yes | slave 与 master 的 mysql 进程状态 |
测试数据双向同步
- 登录 server1->mysql
1 | # 操作数据库test |
- 登录 server2->mysql
1 | # 查看数据库 |
- 切换 server1->mysql
1 | # 查看表table1 |
可以看到,数据双向同步成功。
关联
[[Linux 集群部署解决方案一]]
[[MySQL 双主模式解决主键冲突]]