# 切换主从服务器
在实际工作中,有时候遇到这样的问题,一个主数据库服务器A,两个从服务器B和C.当A发生故障时,需要将一个从数据库B切换成主数据库,同时修改数据库C服务器的配置,使其指向B.
## 操作
首先要确保所有的从数据库都已经执行了relay log中的全部更新,看从数据库中的状态是否是Has read all relay log,是否更新都已经执行完成.
```sql
stop slave IO_THREAD;
show processlist \G;
```
在从数据库B停止slave服务,然后执行reset master重置成主数据库.
```sql
stop slave;
reset master;
```
此时发现报错Binlog没有设置,不能执行reset master命令,下面关闭数据库服务,然后修改配置文件
```ini
[mysqld]
log-bin = /usr/local/ver/mysql/mysql-bin
```
配置完成后,重启数据库服务,登录数据B,然后执行命令开启主数据功能
```sql
stop slave;
reset master;
```
此时从数据库B已经成功设置切换成为主数据库,下面接着设置从数据库.
在从数据B上添加具有replication权限的用户
```sql
grant replication slave on *.* to 'tepl'@'localhost' identified by '123';
show master status;
```
在从数据库C上配置复制的参数
```sql
change master to
-> master_host = '127.0.0.1',
-> master_user = 'repl',
-> master_password = '123',
-> master_port = '3306',
-> master_log_file = 'mysql-bin.000002',
-> master_log_pos = 98;
start slave;
```
在从数据库C执行show slave status 命令查看从数据服务是否成功开启.
```sql
show slave status \G;
```
在数据库B和C测试是否成功设置复制功能
至此,主从数据库成功地发生切换,最后,如果数据库A可以修复,可以考虑以上方法将A数据库配置成为B数据库的从数据库.
- 简介
- 数据库
- 数据表
- 创建数据表
- 查看数据表结构
- 修改数据表
- 删除数据表
- 查询数据
- 表单查询
- 聚合查询
- 链接查询
- 子查询
- 联合查询
- 正则查询
- 数据管理
- 数据类型
- 添加数据
- 更新数据
- 删除数据
- 索引
- 索引分类
- 设计原则
- 添加索引
- 查看索引
- 删除索引
- 视图
- 视图操作
- 视图应用
- 事务
- 触发器
- 存储过程和函数
- 变量
- 异常处理
- 光标
- 流程控制
- 存储过程
- 自定义函数
- 内置函数
- 数学
- 字符串
- 日期和时间
- 条件判断
- 系统信息
- 加/解密
- 其他
- 用户管理
- 登录和退出
- 新建用户
- 删除用户
- 修改用户
- 找回ROOT密码
- 权限管理
- 备份恢复
- 备份数据
- 恢复数据
- 日志
- 二进制日志
- 错误日志
- 查询日志
- 慢查询日志
- 性能优化
- 优化查询语句
- 优化数据库结构
- 优化服务器
- 主从复制
- WIN系统主从复制
- Linux单机主从复制
- Linux联机主从复制
- 参数配置
- 日常管理和维护
- 切换主从服务器
- PHP操作
- 连接
- 创建数据库
- 插入数据
- 插入多条数据
- 预处理语句
- 查询数据
- 预处理语句
- 实战应用
- 分表