最近研究mysql數據庫主從配置,在此記錄一下學習過程,以防忘記。廢話不多說了。
mysql數據庫主從配置的優點:這樣可以實現讀寫分離,也可以在主庫掛掉後從備用庫中恢復。
測試例子環境:需要兩臺機器,安裝mysql,兩臺機器要在相通的局域網內,
主機A: 192.168.1.100
從機B:192.168.1.101
可以有多臺從機
1、先登錄主機 A
爲從機添加賬戶:
mysql>GRANT REPLICATION SLAVE ON *.* TO ‘backup’@’192.168.1.101‘ IDENTIFIED BY ‘123456’;
賦予從機權限,有多臺叢機,就執行多次
2、 打開主機A的my.cnf,輸入
log-bin = mysql-bin #開啓mysql二進制日誌
server-id = 1 #主機標識id,整數
log-bin = /var/log/mysql/updatelog #確保此文件可寫
read-only =0 #主機,讀寫都可以
binlog-do-db =test #需要備份數據,有多個寫多行
binlog-ignore-db =mysql #不需要備份的數據庫,有多個寫多行
然後 mkdir /var/log/mysql
chown mysql:mysql -R /var/log/mysql
3、打開從機B的my.cnf,輸入
log-bin = mysql-bin #開啓mysql二進制日誌
server-id = 2 #主機標識id
log-bin = /var/log/mysql/updatelog
master-host =192.168.1.100
master-user =backup
master-pass =123456
master-port =3306
master-connect-retry=60 #如果從服務器發現主服務器斷掉,重新連接的時間差(秒)
replicate-do-db =test #只複製某個庫 有多個寫多行
replicate-ignore-db=mysql #不復制某個庫 有多個寫多行
然後 mkdir /var/log/mysql
chown mysql:mysql -R /var/log/mysql
4、同步數據庫
不用太費事,只把主從庫都啓動即可自動同步,如果不嫌麻煩的話可以把主庫的內容導出成SQL,然後在從庫中運行一遍
5、先重啓主機A的mysql,再重啓從機B的mysql
6、驗證
在主機A中,mysql>show master status \G;
在從機B中,mysql>show slave status \G;
能看到大致這些內容
File: mysql-bin.000001
Position: 1374
Binlog_Do_DB: test
Binlog_Ignore_DB: mysql
可以在主機A中,做一些INSERT, UPDATE, DELETE 操作,看看主機B中,是否已經被修改