Mycat實現讀寫分離(二)

準備數據庫

這裏準備一個一主多從的傳統架構數據庫:一主多從

Master172.18.0.133306
Slave1
172.18.0.143306
Slave2172.18.0.303306


準備Mycat所需要的用戶

mycat需要兩個用戶用來執行用戶通過mycat執行的操作,當程序需要對錶進行查詢操作時,mycat將會使用mycat_r進行執行查詢,當然你肯定很疑惑,明明用mycat_w進行查詢不是更好嗎,先不要急,慢慢往下看

用戶名(名字可以DIY)權限作用
mycat_rSELECT,EXECUTEmycat用來執行查詢數據
mycat_w
CREATE,DELECT,INSERT,SELECT,UPDATE,DROPmycat用來執行增刪改查

 

創建用戶:

[root@DEPCDB01 ~]# mysql -uroot -S /mysql/3306/3306.sock
mysql> GRANT CREATE,DELETE,INSERT,SELECT,UPDATE,DROP ON *.* TO 'mycat_w'@'%' IDENTIFIED BY 'mycat_w';
mysql> GRANT SELECT ON *.* TO 'mycat_r'@'%' IDENTIFIED BY 'mycat_r';
mysql> FLUSH PRIVILEGES;

創建完畢後查詢權限:

mysql> show grants for mycat_r@'%'; 
+------------------------------------------------------------------------------------------------------------------+
| Grants for mycat_r@%                                                                                             |
+------------------------------------------------------------------------------------------------------------------+
| GRANT SELECT, EXECUTE ON *.* TO 'mycat_r'@'%' IDENTIFIED BY PASSWORD '*D725A7BAA54B53033B1ECB9C72130E1F1B9CFFBA' |
+------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> show grants for mycat_w@'%'; 
+-----------------------------------------------------------------------------------------------------------------+
| Grants for mycat_w@%                                                                                            |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'mycat_w'@'%' IDENTIFIED BY PASSWORD '*081A240A9BF3E6235C18EE43622D0FE948D4240F' |
+-----------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)


檢查兩臺從庫這個用戶有沒有同步過來:

[root@DEPCDB02 ~]# mysql -uroot -S /mysql/3306/3306.sock
mysql> select user,host from mysql.user;
+------------+---------------------+
| user       | host                |
+------------+---------------------+
| mycat_r    | %                   |
| mycat_w    | %                   |
+------------+---------------------+
9 rows in set (0.00 sec)

[root@DEPCDB03 ~]# mysql -uroot -S /mysql/3306/3306.sock
mysql> select user,host from mysql.user;
+------------+---------------------+
| user       | host                |
+------------+---------------------+
| mycat_r    | %                   |
| mycat_w    | %                   |
+------------+---------------------+
9 rows in set (0.00 sec)

* 上面的步驟可能不太嚴謹,在生產環境中創建的用戶登陸上需要進行對IP段進行限制

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