最近搭建了 MySQL 主從 並使用MyCat作為數據庫中間件
版本:
Mysql 5.5.48
Linux :CentOS 6.8
MyCat : 1.4
節點:
192.168.152.11Cluster1
192.168.152.12Cluster2
192.168.152.13Cluster3
首先 在三台節點上都安裝mysql (如何安裝 自行百度)
授權登陸:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'root' WITH GRANT OPTION;
三台節點都授權遠程登陸
三個節點都創建數據庫 database1 、database2
----------------------------------------
配置MySQL主服務器的my.cnf文件
vim /etc/my.cnf
在[mysqld]下面加入如下內容
- binlog-do-db=database1
- binlog-do-db=database2
- binlog-ignore-db=mysql
並且 開啟binlog日志
- log-bin=mysql-bin
以及Server-id
- server-id = 1
如圖:
主服務器配置OK
- service mysql restart
重啟服務
進入Mysql命令行
- show master status\G
得到:
記住這里的:
- File: mysql-bin.000028
- Position: 22285
一會要用到
配置MySQL從服務器的my.cnf文件
- replicate-do-db=database1
- replicate-do-db=database2
- replicate-ignore-db=mysql
以及修改serverid
- server-id = 2
另一台從服務器同理 ServerId 為3
重啟Mysql服務
注意:MySQL 5.1.7版本之后,已經不支持把master配置屬性寫入my.cnf配置文件中了,只需要把同步的數據庫和要忽略的數據庫寫入即可。
Mysql命令行 進入Mysql 在 Cluster2、Cluster3上執行
- slave stop; #停止slave同步進程
然后執行:
- change master to master_host='192.168.152.11',master_user='root',master_password='root',master_log_file='mysql-bin.000028' ,master_log_pos=22285;
注意這里的
master_log_file='mysql-bin.000028' ,master_log_pos=22285;
一定要對應
配置Ok后執行:
- slave start; #開啟slave同步進程
開啟Slave
在執行:
- SHOW SLAVE STATUS\G #查看slave同步信息,出現以下內容
注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上這兩個參數的值為Yes,即說明配置成功!
OK主從復制搭建成功
接下來 安裝Mycat1.4 下載地址:http://www.mycat.org.cn/ 點擊這里直接下載
解壓Mycat
得到:
接下來進行配置讀寫分離
首先 :
- vim wrapper.conf
配置Java路徑
然后 編輯
- vim schema.xml
修改內容如下:
- <?xml version="1.0"?>
- <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
- <mycat:schema xmlns:mycat="http://org.opencloudb/">
- <schema name="database1" checkSQLschema="false" sqlMaxLimit="100" dataNode="database1"></schema>
- <dataNode name="database1" dataHost="localhost1" database="database1" />
- <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
- <heartbeat>select user()</heartbeat>
- <writeHost host="cluster1" url="192.168.152.11:3306" user="root" password="root">
- <readHost host="cluster2" url="192.168.152.12:3306" user="root" password="root" />
- <readHost host="cluster3" url="192.168.152.13:3306" user="root" password="root" />
- </writeHost>
- </dataHost>
- </mycat:schema>
簡單說明一下:
編輯賬戶
vim server.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mycat:server SYSTEM "server.dtd">
- <mycat:server xmlns:mycat="http://org.opencloudb/">
- <system>
- <!--
- <property name="mutiNodeLimitType">1</property> 0:開啟小數量級(默認) ;1:開啟億級數據排序
- <property name="mutiNodePatchSize">100</property> 億級數量排序批量
- <property name="processors">32</property> <property name="processorExecutor">32</property>
- <property name="serverPort">8066</property> <property name="managerPort">9066</property>
- <property name="idleTimeout">300000</property> <property name="bindIp">0.0.0.0</property>
- <property name="frontWriteQueueSize">4096</property> <property name="processors">32</property> -->
- </system>
- <user name="admin">
- <property name="password">admin</property>
- <property name="schemas">database1</property>
- </user>
- </mycat:server>
這里的 的schemas 一定要和前面的 對應
配置OK
bin/mycat start
啟動Mycat
連接MyCat
- mysql -h127.0.0.1 -uadmin -padmin -P8066
Ok 配置結束
Mysql 主從復制 + MyCat讀寫分離 配置就OK了