關於Mysql的安裝可以參照我的另一篇文章:juejin.im/post/5b3d92…
本文介紹的是Mysql的主從備份配置
環境介紹:
系統:ubuntu16.04 64位
master:192.168.1.222
slave1:192.168.1.223
slave2:192.168.1.224
三臺機器都預先裝好了mysql,並都建立了測試資料庫vingo,測試表test
複製程式碼
一、master配置
1. 登入mysql
mysql -uroot -p
複製程式碼
2. 新建備份賬號並授權
mysql>GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.%' IDENTIFIED BY 'mysql';
mysql>FLUSH PRIVILEGES;
複製程式碼
3. 修改mysql配置
vim /etc/my.cnf
server-id = 222 #伺服器唯一標識,直接使用IP末尾
log_bin = master-bin #啟動二進位制日誌
log_bin_index = master-bin.index
binlog_do_db = vingo #指定記錄二進位制日誌的資料庫
binlog_ignore_db= mysql #指定不記錄二進位制日誌的資料庫
複製程式碼
4. 重啟服務
cd /usr/local/mysql/support-files
./mysql.server restart
複製程式碼
5. 登入mysql檢視master狀態
mysql>show master status;
複製程式碼
二、slave配置
slave1和slave2都要進行如下配置,差別僅是mysql配置中的server-id,slave1是223,slave2是224
1. 修改mysql配置
vim /etc/my.cnf
server-id = 223
relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index
複製程式碼
2. 重啟服務
cd /usr/local/mysql/support-files
./mysql.server restart
複製程式碼
3. 登入mysql,連線master
mysql>change master to master_host='192.168.1.222',master_port=3306,master_user='repl',master_password='mysql',master_log_file='master-bin.000001',master_log_pos=154;
master_host:master的IP
master_port:master的埠
master_user:步驟一中建立的複製賬號
master_password:複製賬號的密碼
master_log_file和master_log_pos:對應步驟一最後檢視的master狀態值
複製程式碼
4. 啟動slave同步
mysql>start slave;
複製程式碼
5. 檢視slave狀態
mysql>show slave status\G;
複製程式碼
slave_io_running和slave_sql_running都為yes,就說明配置成功了
三、 測試
在master中執行insert into test(name) values('測試是否同步');
去slave1和slave2中查詢test表看看是否能查到剛insert的記錄,有就證明成功了複製程式碼