mycat查看日志
修改vim conf/log4j2.xml ,调试的时候修改level debug,可以查看详细信息;日志配置文件默认mycat一分钟加载一次,所以修改完不用重启mycat
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d [%-5p][%t] %m %throwable{full} (%C:%F:%L) %n"/>
</Console>
<RollingFile name="RollingFile" fileName="${sys:MYCAT_HOME}/logs/mycat.log"
filePattern="${sys:MYCAT_HOME}/logs/$${date:yyyy-MM}/mycat-%d{MM-dd}-%i.log.gz">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p [%t] (%l) - %m%n</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="250 MB"/>
<TimeBasedTriggeringPolicy/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<!--<AsyncLogger name="io.mycat" level="info" includeLocation="true" additivity="false">-->
<!--<AppenderRef ref="Console"/>-->
<!--<AppenderRef ref="RollingFile"/>-->
<!--</AsyncLogger>-->
//调试的时候修改level debug,可以查看详细信息;日志配置文件默认mycat一分钟加载一次,所以修改完不用重启mycat
<asyncRoot level="debug" includeLocation="true">
<!--<AppenderRef ref="Console" />-->
<AppenderRef ref="RollingFile"/>
</asyncRoot>
</Loggers>
</Configuration>
命令行查看监控
mysql -h 127.0.0.1 -u zl_mycat -P 9066 -p
image.png image.png
image.png
mycat分表
全局表
er
分片枚举
通过在配置文件中配置可能的枚举 id,自己配置分片,本规则适用于特定的场景,比如有些业务需要按照省份或区县来做保存,而全国省份区县固定的
CREATE TABLE database1.`sharding-by-intfile` (
`database` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`user_id` int DEFAULT NULL,
`location` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE database2.`sharding-by-intfile` (
`database` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`user_id` int DEFAULT NULL,
`location` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
CREATE TABLE database3.`sharding-by-intfile` (
`database` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL,
`user_id` int DEFAULT NULL,
`location` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
conf/rule.xml
<tableRule name="sharding-by-intfile">
<rule>
<columns>location</columns> //分片字段
<algorithm>hash-int</algorithm> //分片函数
</rule>
</tableRule>
<function name="hash-int"
class="io.mycat.route.function.PartitionByFileMap">
<property name="mapFile">partition-hash-int.txt</property> //配置文件名称
<property name="type">1</property> // 默认值为 0,0 表示 Integer,非零表示 String
<property name="defaultNode">2</property> //默认分片节点,匹配不到的时候分配到这个节点
</function>
vim conf/partition-hash-int.txt
fuzhou=0
shanghai=1
beijing=2
报错是由于mycat的分片类型,int类型或string字段串类型,设置错误,刚开始配置rule.xml中type为0,但是插入数据为字符串
image.png实验,插入数据,同时进行查询,查看是否正确分片
image.png
网友评论