主從複製

工做原理mysql

  • 主庫把數據更改記錄存儲到二進制日誌
  • 從庫將主庫的日誌複製到本身的中繼日誌
  • 從庫讀取並執行中繼日誌,遇錯中止

特性sql

  • 每一個從僅有一個主
  • 數據不是實時同步,確定存在瞬間主從不一致
  • 網絡斷開後,會在恢復後從新同步
  • 多主的話,能夠用環形配置
  • 謹慎修改從上數據,防止同步時出現錯誤

優勢數據庫

  • 實時備份,切換方便
  • 負載均衡,下降服務器壓力

使用 改主讀從服務器

主數據庫配置網絡

主數據庫master修改: 
一、修改MySQL配置:

# /etc/my.cnf 
log-bin = mysql-bin 

# 主數據庫端ID號 
server-id = 1 

log-bin=/home/mysql/logs/binlog/bin-log
max_binlog_size = 500M
binlog_cache_size = 128K
binlog-do-db = adb
binlog-ignore-db = mysql
log-slave-updates
expire_logs_day=2
binlog_format="MIXED"

二、重啓mysql,建立用於同步的帳戶:

# 建立slave賬號slave,密碼111111 
mysql>grant replication slave on *.* to 'slave'@'%' identified by 'slave123'; 

# 更新數據庫權限 
mysql>flush privileges; 
三、查詢master的狀態

mysql> show master status; 
+------------------+----------+--------------+------------------+ 
| File    | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
+------------------+----------+--------------+------------------+ 
| mysql-bin.000009 |  196 |    |     | 
+------------------+----------+--------------+------------------+ 
1 row in set

從數據庫配置負載均衡

一、修改MySQL配置:

# 從數據庫端ID號 
server-id =2 
二、執行同步命令

# 執行同步命令,設置主數據庫ip,同步賬號密碼,同步位置 
mysql>change master to master_host='192.168.1.2',master_user='slave',master_password='slave123'

# 開啓同步功能 
mysql>start slave; 
三、檢查從數據庫狀態:

mysql> show slave status\G; 
*************************** 1. row *************************** 
... 
   Slave_IO_Running: Yes 
   Slave_SQL_Running: Yes  
...

狀態ide

    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes日誌

在從數據庫調用show slave status\G時,注意上面兩項狀態,均爲YES纔算配置成功code

注意事項orm

log-bin目錄的權限,建立目錄,而且chmod

slave帳號的權限,grant相應權限,在從服務器試登錄

相關文章
相關標籤/搜索