Mycat 提供了类似数据库的管理监控方式,可以通过 MySQL 命令行登陆管理端口 9066 执行相应的 SQL 语句进行管理,可以可以通过 JDBC 的方式进行远程连接管理,使用 MySQL 命令行登陆示例如下:
# mysql -h192.168.2.214 -umycat -P9066 -p123456 [-dtempdb]
-h:参数后面是主机IP
-u:是mycat配置的逻辑库的用户
-p:是mycat配置的逻辑库的用户密码
-P:是端口号
-d:是逻辑库名称
可以使用 show @@help 查询所有命令
Reload 命令
-
reload @@config
该命令用于更新 schema.xml 配置文件,例如更新 schema.xml 文件后在命令窗口输入该命令,不用重启即可进行配置文件的更新,示例如下:
-
reload @@config_all
-
该命令用于更新所有配置文件,不用重启即可进行配置文件的更新,示例如下:
-
Show 命令
-
show @@database
该命令用于查询显示 Mycat 的数据库列表(逻辑库),示例如下:
-
show @@datanode
该命令用于查询显示 Mycat 数据节点列表,还可以通过 show @@datanode where schema = ? 的方式查询指定逻辑库(区分大小写)的数据节点,示例如下:
name:表示数据节点的名称
datahost:表示对应的数据主机
active:表示活动连接
idle:表示空闲连接
size:表示最大连接数量
-
show @@heartbeat
该命令用于报告心跳状态,示例如下:
name:数据主机名称
type:表示数据库类型
host:表示主机地址
rs_code:表示心跳状态
- 0:INIT_STATUS 表示初始化状态
- 1:OK_STATUS 表示正常状态
- -1:ERROR_STATUS 表示连接出错
- -2:TIMEOUT_STATUS 表示连接超时
若节点发生故障,会连续进行默认5个周期的检测,心跳连续失败后会变成 -1 ,节点故障确认,然后可能发生切换
-
show @@connection
该命令用于获取 Mycat 前端的连接状态,示例如下:
如果需要关闭连接,可以使用 kill @@connection id,id,id,… ,示例如下:
-
show @@backend
查询后端连接(Mycat 连接实际数据库)状态,示例如下:
-
show @@cache
用于查看 Mycat 缓存使用情况,示例如下:
SQLRouteCache:SQL语句路由缓存
TableID2DataNodeCache.TESTDB_ORDERS:缓存表主键与分片的对应关系
ER_SQL2PARENTID:缓存ER分片中子表与父表的关系
-
show @@datasource
查看数据源的状态,如果配置了主从或者多主,则可以切换,示例如下:
如果需要切换数据源,可以使用 switch @@datasource name:index 来切换,示例如下:
name:是 schema 配置文件中,配置的 dataNode 中的 name值
index:是 schema 配置文件中,配置的 dataNode 的 dataHost 的 writeHost 的索引,按照从上往下的配置顺序,索引从 0 开始
-
show @@sql
查看在 Mycat 中执行过的SQL语句,需要确认 server.xml 配置文件中的 <property name="useSqlStat">1</property> ,示例如下:
-
show @@sql.slow
查看在 Mycat 中执行的比较慢的 SQL 语句,使用 reload @@sqlslow=? 来设置慢的阈值,如果需要在查询后,移除本次结果不在下次查询显示,可以在命令后 增加标识,show @@sql.slow true,示例如下:
设置执行SQL语句慢的阈值,示例如下:
-
show @@sql.sum
显示SQL语句的整体执行情况、读写比例等,示例如下: