MySQL資料庫主從複製
一般來說都是通過 主從複製(Master-Slave)的方式來同步數據,再通過讀寫分離(MySQL-Proxy)來提升資料庫的並發負載能力 這樣的方案來進行部署與實施的。本文介紹通過log-bin來實現資料庫主從。
一、MySQL主從複製。
主伺服器(master):47.75.154.120
從伺服器(slave):59.110.173.87
1、主伺服器配置
啟動mysql資料庫服務:
mysql start
查看mysql配置文件位置:
mysql --help|grep "my.cnf"
mysql服務啟動 ,會從左到右依次檢測配置文件,如果沒有則載入默認配置
主伺服器配置添加如下配置
配置主資料庫
[mysqld]
#[必須]啟用二進位日誌
log-bin=mysql-bin
#[必須]伺服器唯一ID,默認是1,一般取IP最後一段 (主伺服器不配置也ok)
server-id=87
#忽略備份
binlog_ignore_db=iperformance_schema,information_schema,mysql,sys
#備份
#binlog-do-db=
重啟mysql資料庫
mysqld restart
登錄資料庫
mysql -uroot -p
查看資料庫配置是否生效
mysql>show variables like "server_id";
mysql> show variables like "log_bin";
在主伺服器新建一個用戶並賦予「REPLICATION SLAVE」的許可權。
mysql>CREATE USER "sync"@"59.110.173.87"IDENTIFIED BY "slave"
mysql>GRANT REPLICATION SLAVE ON *.* TO"sync"@"59.110.173.87"IDENTIFIED BY "slave"
查看主資料庫狀態,記錄File與Position的值。
mysql>show master status;
2、從伺服器配置
修改為server-id,並確保這個ID沒有被別的MySQL服務所使用,並重啟後登錄。
先停止slave
mysql> stop slave;
執行從伺服器同步命令
mysql>CHANGE MASTER TO
>MASTER_HOST="47.75.154.120",
>MASTER_USER="sync",
>MASTER_PASSWORD="slave",
>MASTER_PORT=3306,
>MASTER_LOG_FILE="mysql-bin.000007",
>MASTER_LOG_POS=1141303;
啟動slave服務
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave;
查看slave狀態
mysql> show slave statusG
3、效果展示
主伺服器操作前
從伺服器操作前
主伺服器操作(create database test;)
從伺服器自動更新
4、注意
主表有數據時最好先鎖表
mysql> FLUSH TABLES WITH READ LOCK
之後在解鎖
mysql>UNLOCK TABLES;


TAG:PHP技術拓展 |