mycat監聽兩個端口,分別為8066和9066;mycat服務默認的數據端口是8066,而9066端口則是mycat管理端口,用於管理mycat的整個集群狀態。監聽的端口可以在server.xml配置文件中修改。
連接管理端口的方法和連接8066端口的方法基本一樣。
[root@test1 conf]# mysql -uroot -P9066 -h127.0.0.1 -p123456 #大寫的P指定管理端口 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 19 Server version: 5.6.29-mycat-1.6-RELEASE-20161028204710 MyCat Server (monitor) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show @@help; #查看使用的命令
下面來介紹管理端口中使用的命令:
- reload命令:
- 重新加載配置文件,在修改完配置文件之后,不用重啟mycat,可以使用如下命令重新加載:
mysql> reload @@config; Query OK, 1 row affected (0.08 sec) Reload config success
- 從mycat1.5開始新增開啟和關閉sql監控分析的指令,需要在QPS測試時關閉SQL監控分析功能,否則測試結果會很差。
開啟SQL監控分析功能: reload @@sqlstat=open. 關閉SQL監控分析功能: reload @@sqlstat=close. 設置慢SQL時間閾值: reload @@sqlslow= 重置SQL監控分析的數據: reload @@user_stat :這個命令用於清除緩存。改命令工作在9066端口,用來將客戶端執行
show @@sql; show @@sql.sum;show@@slow.success;命令之后的緩存信息清除、
- 重新加載配置文件,在修改完配置文件之后,不用重啟mycat,可以使用如下命令重新加載:
- show命令:
- 顯示mycat數據庫列表,顯示列表對應schema.xml配置文件中的schema子節點。
mysql> show @@database; +----------+ | DATABASE | +----------+ | TESTDB | +----------+ 1 row in set (0.02 sec)
- 顯示mycat數據節點列表,顯示列表對應schema.xml配置文件中的dataNode節點。
mysql> show @@dataNode; +------+---------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+ | NAME | DATHOST | INDEX | TYPE | ACTIVE | IDLE | SIZE | EXECUTE | TOTAL_TIME | MAX_TIME | MAX_SQL | RECOVERY_TIME | +------+---------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+ | dn1 | backup-one/mytest | 0 | mysql | 0 | 10 | 1000 | 5675 | 0 | 0 | 0 | -1 | | dn2 | backup-two/mytest | 0 | mysql | 0 | 10 | 1000 | 5669 | 0 | 0 | 0 | -1 | | dn3 | backup-three/mytest | 0 | mysql | 0 | 10 | 1000 | 5672 | 0 | 0 | 0 | -1 | +------+---------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+ 3 rows in set (0.01 sec) #NAME:表示dataNode的名稱。
#DATAHOST:表示對應的datahost屬性的值,即數據主機。
#ACTIVE:表示活躍的連接數量,IDLE:表示空閑的連接數量。SIZE:表示對應的總連接數量。
這個命令可以和where子句結合,查找對應schema的節點數量。
因為這里只有一個schema,因此顯示的結果一樣的。
mysql> show @@dataNode where schema=TESTDB;
+------+---------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
| NAME | DATHOST | INDEX | TYPE | ACTIVE | IDLE | SIZE | EXECUTE | TOTAL_TIME | MAX_TIME | MAX_SQL | RECOVERY_TIME |
+------+---------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
| dn1 | backup-one/mytest | 0 | mysql | 0 | 10 | 1000 | 5703 | 0 | 0 | 0 | -1 |
| dn2 | backup-two/mytest | 0 | mysql | 0 | 10 | 1000 | 5697 | 0 | 0 | 0 | -1 |
| dn3 | backup-three/mytest | 0 | mysql | 0 | 10 | 1000 | 5700 | 0 | 0 | 0 | -1 |
+------+---------------------+-------+-------+--------+------+------+---------+------------+----------+---------+---------------+
3 rows in set (0.00 sec) - 檢查心跳狀態。
mysql> show @@heartbeat; +--------+-------+--------------+------+---------+-------+--------+---------+--------------+---------------------+-------+ | NAME | TYPE | HOST | PORT | RS_CODE | RETRY | STATUS | TIMEOUT | EXECUTE_TIME | LAST_ACTIVE_TIME | STOP | +--------+-------+--------------+------+---------+-------+--------+---------+--------------+---------------------+-------+ | hostS3 | mysql | 10.0.102.204 | 3306 | 1 | 0 | idle | 0 | 2,1,1 | 2019-01-18 22:51:16 | false | | hostS2 | mysql | 10.0.102.221 | 3306 | 1 | 0 | idle | 0 | 1,1,1 | 2019-01-18 22:51:16 | false | | hostS1 | mysql | 10.0.102.222 | 3306 | 1 | 0 | idle | 0 | 1,1,1 | 2019-01-18 22:51:16 | false | +--------+-------+--------------+------+---------+-------+--------+---------+--------------+---------------------+-------+ 3 rows in set (0.01 sec) RS_CODE狀態如下: OK_STATUS=1代表正常狀態。 ERROR_STATUS =-1 代表連接錯誤 TIMEOUT_STATUS=-2代表連接超時 INIT_STATUS=0代表初始化狀態 若節點發生故障,則會連續進行默認的5個周期檢測,心跳連接失敗后就會變成-1,節點故障確認,然后可能發生切換。
- 顯示mycat的版本號
mysql> show @@version; +-----------------------------------------+ | VERSION | +-----------------------------------------+ | 5.6.29-mycat-1.6-RELEASE-20161028204710 | +-----------------------------------------+ 1 row in set (0.01 sec) mysql>
- 該命令用於獲取mycat當前連接狀態,即應用於mycat的連接。
mysql> show @@connection; +------------+------+--------------+------+------------+------+--------+---------+--------+---------+---------------+-------------+------------+---------+------------+ | PROCESSOR | ID | HOST | PORT | LOCAL_PORT | USER | SCHEMA | CHARSET | NET_IN | NET_OUT | ALIVE_TIME(S) | RECV_BUFFER | SEND_QUEUE | txlevel | autocommit | +------------+------+--------------+------+------------+------+--------+---------+--------+---------+---------------+-------------+------------+---------+------------+ | Processor2 | 20 | 127.0.0.1 | 9066 | 53951 | root | NULL | utf8:33 | 305 | 3169 | 897 | 4096 | 0 | | | | Processor3 | 21 | 10.0.102.204 | 8066 | 31165 | root | NULL | utf8:33 | 99 | 198 | 3 | 4096 | 0 | 3 | true | +------------+------+--------------+------+------------+------+--------+---------+--------+---------+---------------+-------------+------------+---------+------------+ 2 rows in set (0.00 sec) mysql>
- 用於強制關閉連接,id值可由show @@connection命令查看。
mysql> kill @@connection 21; Query OK, 0 rows affected (0.01 sec)
- 查看后端連接狀態:
mysql> show @@backend; +------------+------+---------+--------------+------+--------+--------+---------+-------+--------+----------+------------+--------+----------+---------+------------+ | processor | id | mysqlId | host | port | l_port | net_in | net_out | life | closed | borrowed | SEND_QUEUE | schema | charset | txlevel | autocommit | +------------+------+---------+--------------+------+--------+--------+---------+-------+--------+----------+------------+--------+----------+---------+------------+ | Processor0 | 12 | 121 | 10.0.102.221 | 3306 | 23186 | 45568 | 10848 | 59005 | false | false | 0 | mytest | utf8:33 | 3 | true | | Processor0 | 20 | 126 | 10.0.102.221 | 3306 | 23195 | 45668 | 10797 | 59005 | false | false | 0 | mytest | utf8:33 | 3 | true | | Processor0 | 28 | 126 | 10.0.102.222 | 3306 | 58192 | 45673 | 10907 | 59005 | false | false | 0 | mytest | utf8:33 | 3 | true | | Processor0 | 8 | 86 | 10.0.102.204 | 3306 | 19028 | 43028 | 10814 | 59005 | false | false | 0 | mytest | utf8:33 | 3 | true | | Processor0 | 16 | 128 | 10.0.102.221 | 3306 | 23193 | 45731 | 10750 | 59005 | false | false | 0 | mytest | utf8:33 | 3 | true | | Processor0 | 24 | 121 | 10.0.102.222 | 3306 | 58187 | 48792 | 10856 | 59005 | false | false | 0 | mytest | utf8:33 | 3 | true | | Processor0 | 4 | 79 | 10.0.102.204 | 3306 | 19021 | 41697 | 10810 | 59005 | false | false | 0 | mytest | utf8:33 | 3 | true | | Processor1 | 13 | 123 | 10.0.102.221 | 3306 | 23189 | 45908 | 10756 | 59005 | false | false | 0 | mytest | utf8:33 | 3 | true | | Processor1 | 5 | 82 | 10.0.102.204 | 3306 | 19024 | 42684 | 10797 | 59005 | false | false | 0 | mytest | utf8:33 | 3 | true | | Processor1 | 25 | 128 | 10.0.102.222 | 3306 | 58194 | 45750 | 10743 | 59005 | false | false | 0 | mytest | latin1:5 | 3 | true | | Processor1 | 17 | 125 | 10.0.102.221 | 3306 | 23191 | 46793 | 10757 | 59005 | false | false | 0 | mytest | utf8:33 | 3 | true | | Processor1 | 9 | 87 | 10.0.102.204 | 3306 | 19029 | 42282 | 10808 | 59005 | false | false | 0 | mytest | utf8:33 | 3 | true |
- 用於查看mycat緩存。
mysql> show @@cache; +-------------------------------------+-------+------+--------+------+------+-------------+----------+ | CACHE | MAX | CUR | ACCESS | HIT | PUT | LAST_ACCESS | LAST_PUT | +-------------------------------------+-------+------+--------+------+------+-------------+----------+ | SQLRouteCache | 10000 | 0 | 0 | 0 | 0 | 0 | 0 | | TableID2DataNodeCache.TESTDB_ORDERS | 50000 | 0 | 0 | 0 | 0 | 0 | 0 | | ER_SQL2PARENTID | 1000 | 0 | 0 | 0 | 0 | 0 | 0 | +-------------------------------------+-------+------+--------+------+------+-------------+----------+ 3 rows in set (0.01 sec) SQLRouteCache: SQL語句路由緩存 TableID2DateNodeCache:緩存表主鍵與分片對應關系。 ER_SQL2PARENTID:緩存ER分片中子表與父表對應關系。
- 查看數據源的狀態,如果配置了主從或者多主,則可以切換。
mysql> show @@datasource; +----------+--------+-------+--------------+------+------+--------+------+------+---------+-----------+------------+ | DATANODE | NAME | TYPE | HOST | PORT | W/R | ACTIVE | IDLE | SIZE | EXECUTE | READ_LOAD | WRITE_LOAD | +----------+--------+-------+--------------+------+------+--------+------+------+---------+-----------+------------+ | dn2 | hostS2 | mysql | 10.0.102.221 | 3306 | W | 0 | 10 | 1000 | 5956 | 11 | 17 | | dn3 | hostS3 | mysql | 10.0.102.204 | 3306 | W | 0 | 10 | 1000 | 5959 | 16 | 15 | | dn1 | hostS1 | mysql | 10.0.102.222 | 3306 | W | 0 | 10 | 1000 | 5962 | 12 | 22 | +----------+--------+-------+--------------+------+------+--------+------+------+---------+-----------+------------+ 3 rows in set (0.01 sec)
這個命令在后面讀寫分離查看狀態的時候會用到。
-
switch @@datasource name:index 用於切換數據源
name: schema中配置的dataHost中的name index: schema中配置的dataHost的writeHost index坐標,安裝從上到下的配置順序,從0開始。 切換數據源時會將原數據所有的連接池中的連接關閉,並且從新數據源創建新的連接,此時mycat服務不可用。 注意:reload @@config和switch @@datasource name:index命令在執行過程中mycat服務不可用,應謹慎處理,防止正在提交的事務出錯。
- show @@syslog limit: 用於顯示系統日志
mysql> show @@syslog limit=3; +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | DATE | LOG | +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 2019-01-18 23:26:58 | .687 INFO [$_NIOREACTOR-1-RW] (io.mycat.net.handler.FrontendAuthenticator.success(FrontendAuthenticator.java:194)) - ServerConnection [id=23, schema=null, host=10.0.102.204, user=root,txIsolation=3, autocommit=true, schema=null]'root' login success | | 2019-01-18 23:26:50 | .929 INFO [$_NIOREACTOR-0-RW] (io.mycat.net.handler.FrontendAuthenticator.success(FrontendAuthenticator.java:194)) - [thread=$_NIOREACTOR-0-RW,class=ManagerConnection,id=22,host=127.0.0.1,port=9066,schema=null]'root' login success | | 2019-01-18 23:26:33 | .159 INFO [Timer0] (io.mycat.net.AbstractConnection.close(AbstractConnection.java:508)) - close connection,reason: idle ,[thread=Timer0,class=ManagerConnection,id=20,host=127.0.0.1,port=9066,schema=null] | +---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 3 rows in set (0.02 sec) 端口號:該命令工作在9066端口,用來在客戶端命令窗口中顯示系統日志信息,通常用於遠程查看mycat server的日志信息。 參數:limit=后接正整數,該數值用來限定每次顯示的日志條數的最大數值。
- SQL統計命令
show @@sql:顯示在mycat中執行過的sql語句。
show @@sql.slow:顯示慢SQL語句。
show @@sql.sum: 顯示sql語句的整體執行情況,讀寫比例等。
- 顯示mycat數據庫列表,顯示列表對應schema.xml配置文件中的schema子節點。
