1. mysql的主從複製
1.1. 主從複製的原理:
mysql要做到主從複製,其實依靠的是二進制日誌,類似oracle中的歸檔日誌,即:假設主服務器叫Master,從服務器叫Slave;主從複製就是Slave跟著Master學,Master做什麼,Slave就做什麼。
那麼Slave怎麼同步Master的動作呢?現在Master有一個日誌功能,把自己所做的增刪改查的動作全都記錄在日誌中,Slave只需要拿到這份日誌,照著日誌上面的動作施加到自己身上就可以了。這樣就實現了主從複製,具體實現如下圖:
1.2. 主從複製的好處
1) 好處一:實現服務器負載均衡
2) 好處二:通過複製實現數據的異地備份
3) 好處三:提高數據庫系統的可用性
1.3. 配置mysql主從複製
1安裝mysql在主機(192.168.153.160)和從機(192.168.153.161)
yum -y install mysql mysql-server mysql-devel
# 開機啟動
[root@localhost ~]# chkconfig mysqld on
# 啟動mysqld服務
[root@localhost ~]# service mysqld start
設置mysql root訪問密碼為admin
mysqladmin -uroot -p password admin
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'admin' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql>
2、修改主服務器master: #vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin //[必須]啟用二進制日誌,名字可以隨意
server-id=160 //[必須]服務器唯一ID,默認是1,一般取IP最後一段
3、修改從服務器slave:
#vi /etc/my.cnf
[mysqld] log-bin=mysql-bin
//[不是必須加]啟用二進制日誌
server-id=161 //[必須]服務器唯一ID,默認是1,一般取IP最後一段
4、重啟兩臺服務器的mysql
#/etc/init.d/mysql restart
或者service mysqld restart
5,查看主機狀態
使用root用戶進入mysql命令行,
show master status;
6,配置從服務器Slave(192.168.153.161):
mysql>change master to master_host='192.168.153.160',master_user='root',master_password='admin',master_log_file='mysql-bin.000002',master_log_pos=106;
//注意這是一整條命令不要斷開,master_log_file 的值為上圖file列的值,106為position的值,數字前後無單引號。
Mysql>start slave; //啟動從服務器複製功能
7、檢查從服務器(192.168.153.161)複製功能狀態:
mysql> show slave status\G
8、查看 master 和 slave 上線程的狀態
在主機(192.168.153.160)使用下面命令
mysql> show processlist\G;
在從機(192.168.153.161)使用下面命令
mysql> show processlist\G;
9,主從服務器測試:
在主機(192.168.153.160)上創建數據庫qy73,並在qy73中創建表tbl_user.
在從機(192.168.153.161)上可以發現,數據庫qy73和表tbl_user已經同步過來。
不要為失敗找理由,專為成功找方法!
後面會繼續給大家分享mycat實現mysql的讀寫分離操作,感興趣的朋友可以關注我的頭條HelloTeacherc陳
閱讀更多 HelloTeacher陳 的文章