Mycatの設定と構成ガイド

サーバーにMycat-server-1.6.7.5-release-20200422133810-linux.tarをアップロードします

解凍してtar xf Mycat-server-1.6.7.5-release-20200422133810-linux.tar.gzを実行し、展開されたディレクトリに移動します

schema.xmlの設定

論理データベースと論理テーブルを設定します

以下が設定ファイルです

<?xml version="1.0"?>

<mycat:schema xmlns:mycat="http://io.mycat/">

    <schema name="PRODUCTION_DB" checkSQLschema="true" sqlMaxLimit="100" randomDataNode="dataNode1">

        

    </schema>

    <dataNode name="dataNode1" dataHost="dbServer1" database="ProductionDB" />

    <dataHost name="dbServer1" maxCon="1000" minCon="10" balance="0"
              writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>


    <writeHost host="master1" url="jdbc:mysql://192.168.1.100:3306?useSSL=false&amp;serverTimezone=Asia/Shanghai" user="admin"
                   password="password123">
        </writeHost>
    </dataHost>
    
</mycat:schema>

server.xmlを修正します

<property name="removeGraveAccent">1</property>

<?xml version="1.0" encoding="UTF-8"?>
<!-- - - Licensed under the Apache License, Version 2.0 (the "License"); 
    - you may not use this file except in compliance with the License. - You 
    may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 
    - - Unless required by applicable law or agreed to in writing, software - 
    distributed under the License is distributed on an "AS" BASIS, - WITHOUT 
    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the 
    License for the specific language governing permissions and - limitations 
    under the License. -->

<mycat:server xmlns:mycat="http://io.mycat/">
    <system>
    <property name="nonePasswordLogin">0</property> <!-- 0はパスワードが必要、1は不要 -->
    <property name="ignoreUnknownCommand">0</property><!-- 0は未実装のメッセージでエラー、1は無視 -->
    <property name="useHandshakeV10">1</property>
    <property name="defaultSqlParser">druidparser</property>
    <property name="removeGraveAccent">1</property>
    <property name="useSqlStat">0</property>  <!-- 1でリアルタイム統計を有効化 -->
    <property name="useGlobleTableCheck">0</property>  <!-- 1で全テーブル一貫性検証を有効化 -->
    <property name="sqlExecuteTimeout">300</property>  <!-- SQL実行タイムアウト(秒)-->
        <property name="sequenceHandlerType">1</property>
    <property name="sequnceHandlerPattern">(?:(\s*next\s+value\s+for\s*MYCATSEQ_(\w+))(,|\)|\s)*)+</property>
    <property name="subqueryRelationshipCheck">false</property> <!-- サブクエリ内の関連フィールドチェック -->
    <property name="sequenceHanlderClass">io.mycat.route.sequence.handler.HttpIncrSequenceHandler</property>
      <!--  <property name="useCompression">1</property>--> <!--MySQL圧縮プロトコルを有効化-->
        <!--  <property name="fakeMySQLVersion">5.6.20</property>--> <!--MySQLバージョンを偽装-->
    <!-- <property name="processorBufferChunk">40960</property> -->
    <!-- 
    <property name="processors">1</property> 
    <property name="processorExecutor">32</property> 
     -->
        <!--デフォルトはtype 0: DirectByteBufferPool | type 1 ByteBufferArena | type 2 NettyBufferPool -->
        <property name="processorBufferPoolType">0</property>
        <!--デフォルト65535 64K SQL解析時の最大テキスト長 -->
        <!--<property name="maxStringLiteralLength">65535</property>-->
        <!--<property name="sequenceHandlerType">0</property>-->
        <!--<property name="backSocketNoDelay">1</property>-->
        <!--<property name="frontSocketNoDelay">1</property>-->
        <!--<property name="processorExecutor">16</property>-->
        
            <property name="serverPort">8066</property> 
      <property name="managerPort">9066</property> 
            <property name="idleTimeout">300000</property> 
      <property name="bindIp">0.0.0.0</property>
            <property name="dataNodeIdleCheckPeriod">300000</property> <!-- 接続アイドルチェック -->
            <property name="frontWriteQueueSize">4096</property> 
      <property name="processors">32</property>
        <!--分散トランザクションスイッチ 0:フィルタリングなし、1:フィルタリングあり、2:ログ記録あり-->
        <property name="handleDistributedTransactions">0</property>
        
            <!--
            off heap for merge/order/group/limit      1有効   0無効
        -->
        <property name="useOffHeapForMerge">0</property>

        <!--
            単位:MB
        -->
        <property name="memoryPageSize">64k</property>

        <!--
            単位:KB
        -->
        <property name="spillsFileBufferSize">1k</property>

        <property name="useStreamOutput">0</property>

        <!--
            単位:MB
        -->
        <property name="systemReserveMemorySize">384m</property>


        <!--Zookeeperを使用して切り替えを調整するかどうか  -->
        <property name="useZKSwitch">false</property>

        <!-- XA Recovery Logパス -->
        <!--<property name="XARecoveryLogBaseDir">./</property>-->

        <!-- XA Recovery Log名 -->
        <!--<property name="XARecoveryLogBaseName">tmlog</property>-->
        <!--trueの場合、厳密に分離レベルを適用-->
        <property name="strictTxIsolation">false</property>
        <!--0の場合、複数DataNodeを含むcatletタスクはスレッドを跨いで実行されない-->
        <property name="parallExecute">0</property>
    </system>
    
    <!-- グローバルSQLファイアウォール設定 -->
    <!--ホワイトリストはワイルドカード%または*を使用可能-->
    <!--例:<host host="127.0.0.*" user="root"/>-->
    <!--例:<host host="127.0.*" user="root"/>-->
    <!--例:<host host="127.*" user="root"/>-->
    <!--例:<host host="1*7.*" user="root"/>-->
    <!--これらの設定では127.0.0.1がrootアカウントでログイン可能-->
    <!--
    <firewall>
       <whitehost>
          <host host="1*7.0.0.*" user="root"/>
       </whitehost>
       <blacklist check="false">
       </blacklist>
    </firewall>
    -->

    <user name="admin" defaultAccount="true">
        <property name="password">password123</property>
        <property name="schemas">PRODUCTION_DB</property>
        <property name="defaultSchema">PRODUCTION_DB</property>
        
        <!-- テーブルレベルDML権限設定 -->
        <!--         
        <privileges check="false">
            <schema name="PRODUCTION_DB" dml="0110" >
                
                
            </schema>
        </privileges>        
         -->
    </user>

    <user name="readonly_user">
        <property name="password">readonly</property>
        <property name="schemas">PRODUCTION_DB</property>
        <property name="readOnly">true</property>
        <property name="defaultSchema">PRODUCTION_DB</property>
    </user>

</mycat:server>

View CodeMycatはMySQL 8用のjarパッケージに問題があり、更新が必要

Mycatを起動します

/home/admin1/yyx/mycat/mycat/bin/ディレクトリで起動

./mycat startで起動

./mycat statusで状態を確認

chmod +777 /home/admin1/yyx/mycat/mycat/で権限を追加

再度起動するとエラーが発生

その場合は設定を確認

getconf LONG_BITでLinuxマシンのシステムバージョンを確認

私の環境は64ビットなので、64ビットのjarパッケージをダウンロード

Java Downloads | Oracle

アップロード

解凍 tar xf jdk-8u371-linux-x64.tar.gz

Java環境変数を設定

vim /etc/profile

export JAVA_HOME=/home/admin1/yyx/mycat/mycat/jdk1.8.0_371 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$JAVA_HOME/bin:$PATH

環境変数を有効化

source /etc/profile

Javaバージョンを確認

java -version

インストール成功を確認

Mycatを再起動

タグ: Mycat データベースミドルウェア 分散データベース MySQL Java環境設定

6月14日 19:33 投稿