# Linux環境下的MySQL復制
在大多數情況下,采用不同的MySQL主從復制比較常見,不同ip地址的服務器上的MySQL服務器實現一對一復制跟上一節比較相似.
# 主從復制準備
確保主從服務器上安裝了相同版本的數據庫,設定主服務器的ip是192.168.1.100,從服務器的ip是192.168.1.101
登錄主服務器,設置一個復制使用的賬號,并授予replication slave權限.
```sql
grant replication slave on *.* to 'repl'#'192.168.1.101' identified by '123';
```
修改主數據庫服務器的配置文件my.conf,開啟binlog,并設置server-id的值.需要重啟生效
```ini
[mysqld]
log-bin = /usr/local/var/mysql/mysql-bin
server-id = 1
```
在主服務器上設置鎖定有效,這個操作為了確保沒有數據庫操作
```sql
flush tables with read lock;
```
查詢主服務器行當前的二進制日志和偏移量.這個操作是為了在從服務器啟動以后,從這個點進行數據庫的恢復
```sql
show master status;
```
主數據停止更新操作,需要生成數據的備份可以通過MySQLdump導出數據.備份完成以后,恢復寫操作
```sql
unlock tables;
```
修改從數據庫的配置文件my.cnf,增加server-id參數.server-id的值是唯一的
```ini
[mysqld]
server-id = 2
```
在從服務器上,使用--skip-slave-start選項啟動從數據庫,這樣不會立即啟動從數據服務上的復制進程,方便我們對從數據庫的服務進一步的配置.
```sql
mysqld_safe --skip-slave-start &
```
對從數據庫做相應的設置,指定復制使用的用戶,主數據庫服務器的ip,端口以及開始執行復制的日志文件和位置
```sql
stop slave;
change master to
->master_host = '192.168.1.100',
->master_user = 'repl',
->master_password = '123',
->masrer_log_file = 'mysql-bin.000029',
->master_log_pos = 109;
start slave;
```
## 以下操作可以結合win系統主從復制操作查看
在從服務器上執行show slave starus \G命令查詢從服務器的狀態
也可以用show processlist \G命令查詢從服務器的進程狀態
## 主從復制測試
嘗試在Master主機添加一條記錄,查看Slave主機是否同步
- 簡介
- 數據庫
- 數據表
- 創建數據表
- 查看數據表結構
- 修改數據表
- 刪除數據表
- 查詢數據
- 表單查詢
- 聚合查詢
- 鏈接查詢
- 子查詢
- 聯合查詢
- 正則查詢
- 數據管理
- 數據類型
- 添加數據
- 更新數據
- 刪除數據
- 索引
- 索引分類
- 設計原則
- 添加索引
- 查看索引
- 刪除索引
- 視圖
- 視圖操作
- 視圖應用
- 事務
- 觸發器
- 存儲過程和函數
- 變量
- 異常處理
- 光標
- 流程控制
- 存儲過程
- 自定義函數
- 內置函數
- 數學
- 字符串
- 日期和時間
- 條件判斷
- 系統信息
- 加/解密
- 其他
- 用戶管理
- 登錄和退出
- 新建用戶
- 刪除用戶
- 修改用戶
- 找回ROOT密碼
- 權限管理
- 備份恢復
- 備份數據
- 恢復數據
- 日志
- 二進制日志
- 錯誤日志
- 查詢日志
- 慢查詢日志
- 性能優化
- 優化查詢語句
- 優化數據庫結構
- 優化服務器
- 主從復制
- WIN系統主從復制
- Linux單機主從復制
- Linux聯機主從復制
- 參數配置
- 日常管理和維護
- 切換主從服務器
- PHP操作
- 連接
- 創建數據庫
- 插入數據
- 插入多條數據
- 預處理語句
- 查詢數據
- 預處理語句
- 實戰應用
- 分表