主機: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.驗證
主機操作
從機操作查詢