# 切換主從服務器
在實際工作中,有時候遇到這樣的問題,一個主數據庫服務器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操作
- 連接
- 創建數據庫
- 插入數據
- 插入多條數據
- 預處理語句
- 查詢數據
- 預處理語句
- 實戰應用
- 分表