mysql 主從備份和雙主備份配置

 

 主機:192.168.52.135  安裝lnmp服務(後面我的機器ip變成了192.168.52.139,就是之前135的機器)

 從機:192.168.52.136  安裝lnmp服務(從機可以有多臺)

 

一:主從配置

1.打開主機的my.cnf配置文件

#vim /etc/my.cnf

找到log-bin = mysql-bin , binlog_format = mixed  ,確定開啓

server-id = 1 可以改成server-id = 135 ,避免重複,保存退出

2.重啓mysql讓其生效

#lnmp mysql restart

3.驗證是否成功

#cd /usr/local/mysql/var/   (mysql存放日誌文件的目錄)

#ll

若目錄下有了mysql-bin.000001 mysql-bin.000002 ... 等二進制文件證明成功了

4.登陸mysql

#mysql -uroot -p123456  (u後面跟賬號,p後面跟密碼)

#show master status;  

若看到有File(mysql.bin.00003)  Position(154) 則成功

二:配置從機

1.打開主機的my.cnf配置文件

#vim /etc/my.cnf

找到log-bin = mysql-bin , binlog_format = mixed ,並註釋掉

server-id = 1 可以改成server-id = 136 ,避免重複,

在server-id下增加relay_log =  mysql-relay-bin ,保存退出

2.重啓mysql讓其生效

# lnmp mysql restart

三:.讓從機去監聽主機日誌,但這之前得讓主機允許,開啓權限

1.回到主機,登陸入數據庫

#mysql -uroot -p123456

#grant replication slave on *.* to [email protected] identified by '123456';

# flush privileges;刷新

(這句話意思是,主機允許slave用戶,通過密碼123456,在192.168.52.136這臺服務器上訪問當前這臺master)

2.回到從機,先檢查下主機是否能ping通

#ping 192.168.52.135

ping通則下一步

3.登陸入數據庫

#mysql -uroot -p123456

4.設置從機監聽主機

#mysql>stop slave;

#mysql>change master to    (設置監聽)

     ->master_host='192.168.52.135',

     ->master_port=3306,

     ->master_user='slave',

     ->master_password='123456',

     ->master_log_file='mysql-bin.000008' , (回主機第4步查看file的名稱)

     ->master_log_pos=258;  回車 (回主機第4步查看Position的值)

查看主機master狀態得知

#mysql> start slave;開啓監聽

#mysql> show slave status\G;  查看slave狀態

若Slave_IO_State : Waiting for master to send event (等待主機發送事件)

Slave_IO_Running: Yes  ,若它爲No,檢查下主機防火牆是否已關閉

Slave_SQL_Running:Yes  這倆項都是yes則配置成功了

 

5.驗證數據庫是否同步

#mysql>use imooc_shop;  imooc_shop數據庫名

#mysql>show tables;  查看所有表名

#mysql>select * from user;  查看錶數據

6.回到主機,一樣查看主機的select * from user,

再刪除或添加數據,再去從庫看是否同步

在主機192.168.52.135上操作mysql

在從機192.168.52.136上查看mysql

三:主從配置好還有個缺點,一旦master掛掉,業務就是停止.

解決問題,用雙主備份

1.回到上面的從機:192.168.52.136

#vim /etc/my.cnf

找到log-bin = mysql-bin , binlog_format = mixed  ,確定開啓

在relay_log 下面增加一行

log_slave_updates = 1

退出保存

2.#lnmp mysql restart

3.授權給master:192.168.52.135

#mysql -uroot -p123456

#grant replication slave on *.* to [email protected] identified by '123456';

# flush privileges;刷新

4.讓主去監聽從的變化

回到主機

#vim /etc/my.cnf

找到server_id = 135 ,在下面增加兩行

relay_log = mysql-relay-bin

log_slave_updates = 1

保存退出

 

5.#lnmp mysql restart

6.和上面配置相同,互爲主備,下面簡略

7.回從機

#mysql -uroot -p123456

#stop slave;

#change master to

master_host='192.168.52.135',master_port=3306,master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=452;

#start slave;

#show slave status\G;

8.Slave_IO_Running: Yes

Slave_SQL_Running:Yes  這倆項都是yes則配置成功了

若Slave_IO_Running: No 則檢查下主機的防火牆是否關閉

 

9.驗證

主機操作

從機操作查詢

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章