MyCat 基础 - 配置文件 - server

前言

本章主要整理 MyCat核心配置说明

核心配置文件说明

文件名 说明 功能
server.xml 虚拟MySQL 配置系统相关参数
配置用户访问权限
配置SQL防火墙及SQL拦截功能
schema.xml 数据库配置 配置逻辑库及逻辑表
配置逻辑表所存储的数据节点
配置数据节点所对应的物理数据库服务信息
rule.xml 切片规则 配置水平分片的分片规则
配置分片规则所对应的分片函数
log4j2.xml 日志文件 配置输出日志的格式
配置输出日志的级别

核心配置 - server.xml

完整配置



<mycat:server xmlns:mycat="http://io.mycat/">
    <system>
        <property name="serverPort">8066property>
        <property name="managerPort">9066property>
        <property name="nonePasswordLogin">0property>
        <property name="bindIp">0.0.0.0property>
        <property name="frontWriteQueueSize">2048property>
        <property name="charset">utf8property>
        <property name="txIsolation">2property>
        <property name="processors">8property>
        <property name="idleTimeout">1800000property>
        <property name="sqlExecuteTimeout">300property>
        <property name="useSqlStat">0property>
        <property name="useGlobleTableCheck">0property>
        <property name="sequnceHandlerType">1property>
        <property name="defaultMaxLimit">100property>
        <property name="maxPacketSize">104857600property>
    system>

    
    
    
    
    
    
    
    <firewall>
			<whitehost>
    		<host host="1*7.0.0.*" user="root"/>
    	whitehost>
      <blacklist check="false">
      blacklist>
    firewall>

    <user name="root" defaultAccount="true">
        <property name="password">123456property>
        <property name="schemas">book_dbproperty>
    user>

    
    <user name="admin">
        <property name="password">123456property>
        <property name="schemas">book_dbproperty>
        <property name="readOnly">trueproperty>
    user>

    
    <user name="test">
        <property name="password">123456property>
        <property name="schemas">book_dbproperty>
        <property name="readOnly">trueproperty>
      
        <privileges check="false">
            <schema name="TESTDB" dml="0010" showTables="custome/mysql">
                <table name="tbl_user" dml="0110">table>
                <table name="tbl_dynamic" dml="1111">table>
            schema>
        privileges>
    user>

mycat:server>

system配置说明

属性 说明
serverPort MyCat 服务端口
managerPort MyCat 管理端口
nonePasswordLogin 0 需要密码登录 (默认)
1 不需要密码登录(需要指定默认账户)
bindIp 在哪个IP上监控
frontWriteQueueSize 前端写队列的大小
charset 默认字符集 (前端链接到后端MySQL的字符集需要保持一致)
txIsolation 事务隔离级别 <下面有完整介绍>
processors MyCat的进程数量,通常等于cpu核数就好
idleTimeout 前端连接MyCat空闲超时时间 (单位:毫秒)
sqlExecuteTimeout SQL 执行超时(单位:秒)
useSqlStat 1 开启实时统计
0 关闭
useGlobleTableCheck 1 开启全局表一致性检测
0 关闭
sequnceHandlerType 指定使用 Mycat 全局序列的类型. <下面有完整介绍>
defaultMaxLimit MyCat默认返回数据值的大小
maxPacketSize 运行最大包的大小

事务隔离级别 txIsolation

隔离级别
读未提交(READ UNCOMMITTED) 1
读已提交(READ COMMITTED) 2
可重复读(REPEATABLE READ) - 默认 3
顺序读 (SERIALIZABLE) 4

全局序列的类型 sequnceHandlerType

描述
0 为本地文件方式
1 为数据库方式
2 为时间戳序列方式
3 为分布式ZKID生成器
4 为 zk 递增Id 方式

user配置说明

定义默认账号,用户名 user 密码 123456 ,可以登录mycat并可访问逻辑库 book_db

<user name="root" defaultAccount="true">
  <property name="password">123456property>
  <property name="schemas">book_dbproperty>
user>

定义只读账号,用户名 admin 密码 123456 , 可以登录mycat并可访问逻辑库 book_db

<user name="admin" defaultAccount="true">
  <property name="password">123456property>
  <property name="schemas">book_dbproperty>
  <property name="readOnly">trueproperty>
user>

访问用户权限配置,限制逻辑表 TESTDB

参数 说明 事例(禁止增删改查)
Dml insert,update,select,delete 0000
<user name="test">
  <property name="password">123456property>
  <property name="schemas">book_dbproperty>

  <privileges check="false">
    <schema name="TESTDB" dml="0010" showTables="custome/mysql">
      <table name="tbl_user" dml="0110">table>
      <table name="tbl_dynamic" dml="1111">table>
    schema>
  privileges>
user>

密码加密

得到最后一行,加密串

$ cd usr/local/mycat/lib
$ java -cp Mycat-server-1.6.7.3-release.jar io.mycat.util.DecryptUtil 0:root:123456
<user name="root" defaultAccount="true">
  <property name="usingDecrypt">1property>
   <property name="password">上面输出的密码property>
		<property name="schemas">book_db,order_dbproperty>
user>

重启 mycat

mycat restart

防火墙

白名单配置

<firewall>
  <whitehost>
    
    <host user="admin" host="192.168.1.5">host>
  whitehost>
firewall>

非白名单的主机登录 MyCat

mysql -uadmin -p123456 -h192.168.1.2 -P8066
ERROR 1045 (HY000): Access denied for user 'admin' with host '192.168.1.2'

黑名单设置

  <blacklist check="true">
  
  <property name="noneBaseStatementAllow">trueproperty>
  
  <property name="deleteWhereNoneCheck">trueproperty>
blacklist>

测试 delete 不输入where的情况

# 执行delete 但不输入 where
delete from order_master;
ERROR 3012 (HY000): The statement is unsafe SQL, reject for user 'admin'

你可能感兴趣的:(MySQL,Java)