mycat1.6實踐

MyCat安裝配置

下載地址:GitHub - MyCATApache/Mycat-download
閱讀文檔:| MYCAT官方網站—開源分佈式數據庫中間件

1.安裝

運行:
linux:

./mycat start 啓動

./mycat stop 停止

./mycat console 前臺運行

./mycat install 添加到系統自動啓動(暫未實現)

./mycat remove 取消隨系統自動啓動(暫未實現)

./mycat restart 重啓服務

./mycat pause 暫停

./mycat status 查看啓動狀態

win:
直接運行startup_nowrap.bat,如果出現閃退,在cmd 命令行運行,查看出錯原因。

內存配置:
啓動前,一般需要修改JVM配置參數,打開conf/wrapper.conf文件,如下行的內容爲2G和2048,可根據本機配置情況修改爲512M或其它值。 以下配置跟jvm參數完全一致,可以根據自己的jvm參數調整。

Java Additional Parameters

wrapper.java.additional.1=

wrapper.java.additional.1=-DMYCAT_HOME=.

wrapper.java.additional.2=-server

wrapper.java.additional.3=-XX:MaxPermSize=64M

wrapper.java.additional.4=-XX:+AggressiveOpts

wrapper.java.additional.5=-XX:MaxDirectMemorySize=100m

wrapper.java.additional.6=-Dcom.sun.management.jmxremote

wrapper.java.additional.7=-Dcom.sun.management.jmxremote.port=1984

wrapper.java.additional.8=-Dcom.sun.management.jmxremote.authenticate=false

wrapper.java.additional.9=-Dcom.sun.management.jmxremote.ssl=false

wrapper.java.additional.10=-Xmx100m

wrapper.java.additional.11=-Xms100m

wrapper.java.additional.12=-XX:+UseParNewGC

wrapper.java.additional.13=-XX:+UseConcMarkSweepGC

wrapper.java.additional.14=-XX:+UseCMSCompactAtFullCollection

wrapper.java.additional.15=-XX:CMSFullGCsBeforeCompaction=0

wrapper.java.additional.16=-XX:CMSInitiatingOccupancyFraction=70

以下配置作廢:

wrapper.java.initmemory=3

wrapper.java.maxmemory=64

Mycat連接測試:
測試mycat與測試mysql完全一致,mysql怎麼連接,mycat就怎麼連接。

推薦先採用命令行測試:

mysql -uroot -proot -P8066 -h127.0.0.1

如果採用工具連接,1.4,1.3目前部分工具無法連接,會提示database not selected,建議採用高版本,navicat測試。1.5已經修復了部分工具連接。

2.配置

mysql主從配置
主數據庫:192.168.0.1
從數據庫:192.168.0.2

1主節點配置信息my.cnf

[mysqld]
   log-bin=mysql-bin    (必須配置)   啓用二進制日誌
   server-id=1          (必須配置)    爲本臺服務器配置唯一的Server ID
   binlog-do-db=testdb  (可選配置)要同步的數據庫名,要同步多個數據庫,就多加幾個replicate-db-db=數據庫名
   binlog-ignore-db=mysql (可選配置)//要忽略的數據庫

1.1.添加從庫權限賬號

create user user;
GRANT REPLICATION SLAVE ON *.* TO 'user'@'192.168.0.2' IDENTIFIED BY 'password';
flush privileges;      //刷新權限

1.2.重啓主服務器

  /bin/systemctl restart mysqld.service(centos)  
  /bin/systemctl restart mysql.service(ubuntu)

1.3.查看主服務器狀態

 show master status;

2.從節點配置信息my.cnf

 [mysqld]
   log-bin=mysql-bin    (必須配置)   啓用二進制日誌
   server-id=2          (必須配置)    爲本臺服務器配置唯一的Server ID
   replicate-do-db=testdb  (可選配置)#在master端不指定binlog-do-db,在slave端用replication-do-db來過濾,要同步多個數據庫,就多加幾個replicate-db-db=數據庫名
   binlog-ignore-db=mysql (可選配置)//要忽略的數據庫
   relay-log=mysqld-relay-bin

2.配置連接主服務器的信息

  change master to master_host='192.168.0.1',master_user='user',master_password='password',master_log_file='mysql-bin.000001', master_log_pos=120;

  flush privileges;      //刷新權限
  start slave;

3.重啓從服務器

  /bin/systemctl restart mysqld.service(centos)  
  /bin/systemctl restart mysql.service(ubuntu)

4.查看從服務器狀態

 show slave status;
讀寫分離配置

文件conf/schema.xml

<schema name="mycatdb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
		
	</schema>
	<dataNode name="dn1" dataHost="localhost1" database="world" />

	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100" maxRetryCount="4">
		<heartbeat>select user()</heartbeat>
		<!-- can have multi write hosts -->
		<writeHost host="hostM1" url="localhost:3306" user="root"
				   password="123456">
			<!-- can have multi read hosts -->
			<readHost host="hostS2" url="localhost:3307" user="root" password="123456" />
		</writeHost>
	</dataHost>

解釋:

name=“mycatdb” 是虛擬的表名,dataNode="dn1"是虛擬的數據庫

database="world"是真實對應的庫名 ,

url=“localhost:3306” user=“root” password=“123456” 真實對應的數據庫服務IP和用戶名密碼,主要用來連接數據庫。
server.xml配置

<user name="root" defaultAccount="true">
		<property name="password">123456</property>
		<property name="schemas">mycatdb</property>
		
		<!-- 表級 DML 權限設置 -->
		<!-- 		
		<privileges check="false">
			<schema name="TESTDB" dml="0110" >
				<table name="tb01" dml="0000"></table>
				<table name="tb02" dml="1111"></table>
			</schema>
		</privileges>		
		 -->
	</user>

連接測試 使用mysql連接工具端口8066連接即可地址爲mycat所在主機地址
測試讀寫分離功能
首先寫一條select 語句 然後查看logs/mycat.log日誌
同理寫一條插入語句 查看日誌。

分表配置

首先創建三個數據庫
db01 db02 db03
db01創建users表
db02,db03 創建items表

rule.xml配置

<function name="mod-long" class="io.mycat.route.function.PartitionByMod">
		<!-- how many data nodes -->
		<property name="count">2</property>
	</function>

schema.xml

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

	<schema name="mycatdb" checkSQLschema="false" sqlMaxLimit="100">
	     <table name="users" primaryKey="ID"  dataNode="dn1" />  
		 		<table name="items" primaryKey="ID" autoIncrement="true" dataNode="dn2,dn3"
			   rule="mod-long" />
	</schema>
	<!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
		/> -->
	<dataNode name="dn1" dataHost="localhost1" database="db01" />
	<dataNode name="dn2" dataHost="localhost1" database="db02" />
	<dataNode name="dn3" dataHost="localhost1" database="db03" />
	<!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" />
	 <dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" />
	<dataNode	name="jdbc_dn2" dataHost="jdbchost" database="db2" />
	<dataNode name="jdbc_dn3" 	dataHost="jdbchost" database="db3" /> -->
	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<!-- can have multi write hosts -->
		<writeHost host="hostM1" url="localhost:3306" user="root"
				   password="123456">
			<!-- can have multi read hosts -->
			<readHost host="hostS2" url="localhost:3307" user="root" password="123456" />
		</writeHost>

	</dataHost>
</mycat:schema>

注意 :如果表中使用了規則 則規則中數字和節點數相等,不然重啓mycat會失敗

3.監控

1.mycat 控制檯監控

監控默認端口9066
登錄命令

mysql -uroot -proot -P9066 -h127.0.0.1
show @@help;#顯示所有命令

參考網址:https://www.cnblogs.com/parryyang/p/5606071.html

2.web監控

下載項目
1.下載linux版本
將文件解壓放到對應文件夾
2.啓動zookeeper
3.修改mycat-web配置
配置文件路徑mycat-web/WEB-INF/classes


show.period=3000000
zookeeper=192.168.0.3:2181

mycat_warn_mail=XXX
##mycat配置
sqlonline.server=192.168.18.140
sqlonline.user=root
sqlonline.passwd=123456

4.啓動項目

./start.sh &

5.訪問路徑
http://localhost:8082/mycat

打開界面之後只有一個菜單 說明zookeeper沒有連接上檢查即可

在這裏插入圖片描述

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