1. はじめにこの記事では、Docker を使用して、MySQL マスター/スレーブ構成、読み取り/書き込み分離、サブライブラリ、テーブル サブテーブル機能を実装します。 2. 環境整備1. 基本環境ジャワ Javaバージョン「1.8.0_111」 Java(TM) SE ランタイム環境 (ビルド 1.8.0_111-b14) Java HotSpot(TM) 64 ビット サーバー VM (ビルド 25.111-b14、混合モード) ドッカー クライアント: バージョン: 18.03.0-ce APIバージョン: 1.37 Goバージョン: go1.9.4 Gitコミット: 0520e24 作成日: 2018年3月21日水曜日 23:09:15 OS/アーキテクチャ: linux/amd64 実験的: 偽 オーケストレーター: swarm サーバ: エンジン: バージョン: 18.03.0-ce API バージョン: 1.37 (最小バージョン 1.12) Goバージョン: go1.9.4 Gitコミット: 0520e24 作成日: 2018年3月21日水曜日 23:13:03 OS/アーキテクチャ: linux/amd64 実験的: 偽 3.Mysqlマスタースレーブ構成をインストールする1. 展開情報
2. マスターノード構成ファイルMySQLマスターノード構成ファイルを作成する /usr/local/mysql/master ディレクトリに移動します。 mkdir conf-data マスターノード構成ファイルdocker.cnfを作成する [mysqld] サーバーID=1 log-bin=master-bin #読み取りと書き込みのみの場合は、マスター データベースのみを構成する必要があります。マスターとスレーブを切り替える場合は、マスター データベースとスレーブ データベースの両方を有効にする必要があります。 ホストキャッシュをスキップする 名前解決をスキップ 照合サーバー = utf8_unicode_ci init-connect='名前をutf8に設定' 文字セットサーバー = utf8 [mysql] デフォルトの文字セット=utf8 [クライアント] デフォルトの文字セット=utf8 スレーブノードの設定ファイルdocker.confを作成する mkdir /usr/local/mysql/slave mkdir conf-data [mysqld] サーバーID=2 ログビン=マスタービン ホストキャッシュをスキップする 名前解決をスキップ 照合サーバー = utf8_unicode_ci init-connect='名前をutf8に設定' 文字セットサーバー = utf8 [mysql] デフォルトの文字セット=utf8 [クライアント] デフォルトの文字セット=utf8 3. MySQLコンテナを作成するここでは、コンテナを作成するためにmariadbの最新の安定イメージを使用します。 マスターノードmyslqを作成する docker run --name master -p 3306:3306 -v /usr/local/mysql/master/conf:/etc/mysql/conf.d -v /usr/local/mysql/master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -idt mariadb:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci スレーブノードmysqlを作成する docker run --name スレーブ -p 3307:3306 -v /usr/local/mysql/slave/conf:/etc/mysql/conf.d -v /usr/local/mysql/slave/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -idt mariadb:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci 4. マスタースレーブレプリケーションを有効にするステップ1 マスターノードに入る docker exec -it マスター /bin/bash mysql -uroot -p ステップ2 ユーザーを作成する 'root' によって識別されるユーザー 'backUser'@'%' を作成します。 *.* のレプリケーションスレーブを 'backUser'@'%' に付与します。 権限をフラッシュします。 マスターステータスを表示します。 MariaDB [(なし)]> マスターステータスを表示します。 +-------------------+----------+--------------+------------------+ | ファイル | 位置 | Binlog_Do_DB | Binlog_Ignore_DB | +-------------------+----------+--------------+------------------+ | マスターbin.000003 | 787 | | | +-------------------+----------+--------------+------------------+ セット内の 1 行 (0.000 秒) ステップ3 スレーブノードに入り、ユーザーを作成して同期を開始します docker exec -it スレーブ /bin/bash mysql -uroot -proot マスターをmaster_host='192.168.92.51'、master_port=3306、master_user='backUser'、master_password='root'、master_log_file='master-bin.000003'、master_log_pos=787に変更します。 マスタースレーブレプリケーションを有効にする: スレーブを起動します。
マスタースレーブレプリケーションが正常かどうかを確認する スレーブステータスを表示 \G; ************************** 1. 行 **************************** Slave_IO_State: マスターがイベントを送信するのを待機中 マスターホスト: 192.168.92.50 マスターユーザー: backUser マスターポート: 3306 接続再試行: 60 マスターログファイル: master-bin.000005 読み取りマスターログ位置: 343 リレーログファイル:mysqld-relay-bin.000002 リレーログ位置: 556 リレーマスターログファイル: master-bin.000005 スレーブIO実行中: はい スレーブSQL実行中: はい スレーブに 2 つの YES が表示された場合、マスターとスレーブ間のレプリケーションが正常に設定されていることを意味します。 5. Mycatをインストールするmycatをダウンロードして50ノードにインストールする tar -zxvf Mycat-server-1.6.7.1-リリース-20190213150257-linux.tar.gz mv mycat/ /usr/local/ mycatのconfディレクトリにあるserver.xmlファイルを変更し、ユーザー名とパスワードを指定します。 <?xml バージョン="1.0" エンコーディング="UTF-8"?> <!-- - - Apache License バージョン 2.0 (以下「ライセンス」) に基づいてライセンスされます。 - ライセンスに従わない限り、このファイルを使用することはできません。 ライセンスのコピーは、http://www.apache.org/licenses/LICENSE-2.0 から入手できます。 - - 適用法で義務付けられている場合、または書面で同意されている場合を除き、ソフトウェア - ライセンスに基づいて配布されるものは、「現状のまま」配布され、 明示的または黙示的を問わず、いかなる種類の保証または条件も保証しません。 権限と制限を規定する特定の言語のライセンス ライセンスに基づいて。 --> <!DOCTYPE mycat:server SYSTEM "server.dtd"> <mycat:server xmlns:mycat="http://io.mycat/"> <システム> <property name="nonePasswordLogin">0</property> <!-- 0 はログインにパスワードが必要、1 はログインにパスワードが不要であることを意味します。デフォルト値は 0 です。1 に設定する場合は、デフォルトのアカウントを指定する必要があります --> <プロパティ名="useHandshakeV10">1</プロパティ> <property name="useSqlStat">0</property> <!-- 1 はリアルタイム統計を有効にし、0 は無効にします --> <property name="useGlobleTableCheck">0</property> <!-- 1 は完全な時間外一貫性検出を有効にし、0 は無効にします --> <プロパティ名="sequnceHandlerType">0</プロパティ> <property name="subqueryRelationshipCheck">false</property> <プロパティ名="プロセッサバッファプールタイプ">0</プロパティ> <プロパティ名="handleDistributedTransactions">0</プロパティ> <プロパティ名="useOffHeapForMerge">1</プロパティ> <!--単位はmです--> <プロパティ名="memoryPageSize">64k</プロパティ> <!--単位はkです--> <プロパティ名="spillsFileBufferSize">1k</プロパティ> <プロパティ名="useStreamOutput">0</プロパティ> <!--単位はmです--> <プロパティ名="systemReserveMemorySize">384m</プロパティ> <!-- 切り替えを調整するために Zookeeper を使用するかどうか --> <プロパティ名="useZKSwitch">false</プロパティ> <!-- XA リカバリ ログ名 --> <!--<プロパティ名="XARecoveryLogBaseName">tmlog</プロパティ>--> <!--true の場合、分離レベルを厳守し、SELECT ステートメントのみがある場合にトランザクションで接続を切り替えません --> <プロパティ名="strictTxIsolation">false</プロパティ> <プロパティ名="useZKSwitch">true</プロパティ> </システム> <ユーザー名="root"> <プロパティ名="パスワード">123456</プロパティ> <property name="schemas">テスト</property> </ユーザー> </mycat:サーバー> 上記の構成では、仮想論理データベース テストにアクセスするために、ユーザー名として root が指定され、パスワードは 123456 です。 ルールを設定する mycat confフォルダのschema.xmlを変更して、データベースの対応するルールを設定します。 <?xml バージョン="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:スキーマ xmlns:mycat="http://io.mycat/"> <スキーマ名="test" checkSQLschema="false" sqlMaxLimit="100"> <テーブル名="tb_user" プライマリキー="id" 自動インクリメント="true" データノード="dn1,dn2,dn3,dn4" ルール="userrule" /> <テーブル名="tb_category" プライマリキー="id" データノード="dn1,dn2,dn3,dn4" ルール="categoryrule" /> </スキーマ> <データノード名="dn1" データホスト="localhost1" データベース="db1" /> <データノード名="dn2" データホスト="localhost1" データベース="db2" /> <データノード名="dn3" データホスト="localhost1" データベース="db3" /> <データノード名="dn4" データホスト="localhost1" データベース="db4" /> <dataHost name="localhost1" maxCon="1000" minCon="10" バランス="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>ユーザーを選択()</heartbeat> <!-- 読み取り/書き込み分離構成 --> <writeHost ホスト="hostM1" url="192.168.92.50:3306" ユーザー="root" パスワード="123456"> <readHost ホスト="hostS2" url="192.168.92.51:3307" ユーザー="root" パスワード="123456" /> </writeHost> </データホスト> </mycat:スキーマ> 上記の構成スキーマ名は、サーバー構成ファイルの仮想データベースに対応し、2 つのテーブル情報を指定します。tb_user テーブルの主キーは自己増加型であり、4 つのデータベース ノードがあり、userrule テーブル ルールを使用します。 dataNode は実際の対応する物理データベース ノードを指定し、対応する dataHost は指定されたユーザーおよびノード情報の読み取りと書き込みを記述します。 テーブル シャーディング ルール ファイル rule.xml を構成する <?xml バージョン="1.0" エンコーディング="UTF-8"?> <!-- - - Apache License バージョン 2.0 (以下「ライセンス」) に基づいてライセンスされます。 - ライセンスに従わない限り、このファイルを使用することはできません。 ライセンスのコピーは、http://www.apache.org/licenses/LICENSE-2.0 から入手できます。 - - 適用法で義務付けられている場合、または書面で同意されている場合を除き、ソフトウェア - ライセンスに基づいて配布されるものは、「現状のまま」配布され、 明示的または黙示的を問わず、いかなる種類の保証または条件も保証しません。 権限と制限を規定する特定の言語のライセンス ライセンスに基づいて。 --> <!DOCTYPE mycat:rule SYSTEM "rule.dtd"> <mycat:rule xmlns:mycat="http://io.mycat/"> <!-- データベースルールを構成する --> <tableRule name="ユーザールール"> <ルール> <columns>id</columns> <アルゴリズム>関数1</アルゴリズム> </ルール> </tableRule> <!-- データベース テスト tb_category ルールを構成する --> <tableRule name="カテゴリルール"> <ルール> <columns>id</columns> <アルゴリズム>ジャンプ一貫性ハッシュ</アルゴリズム> </ルール> </tableRule> <関数名="つぶやき" クラス="io.mycat.route.function.PartitionByMurmurHash"> <property name="seed">0</property><!-- デフォルトは 0 です --> <property name="count">2</property><!-- シャーディングするデータベース ノードの数を指定する必要があります。指定しないとシャーディングは機能しません --> <property name="virtualBucketTimes">160</property><!-- 実際のデータベース ノードは多数の仮想ノードにマップされます。デフォルトは 160 倍です。つまり、仮想ノードの数は物理ノードの数の 160 倍です --> <!-- <property name="weightMapFile">weightMapFile</property> ノードの重み。重みが指定されていないノードのデフォルト値は 1 です。プロパティ ファイルの形式で、キーとして 0 から count-1 までの整数値、つまりノード インデックス、値としてノードの重みを入力します。すべての重み値は正の整数でなければなりません。そうでない場合は1に置き換えられます --> <!-- <プロパティ名="bucketMapPath">/etc/mycat/bucketMapPath</プロパティ> テスト中に物理ノードと仮想ノードの分布を観察するために使用します。この属性を指定すると、仮想ノードの murmur ハッシュ値と物理ノードのマッピングが 1 行ずつこのファイルに出力されます。デフォルト値はありません。指定しない場合は何も出力されません。 --> </function> <関数名="crc32スロット" クラス="io.mycat.route.function.PartitionByCRC32PreSlot"> </function> <関数名="ハッシュ-int" クラス="io.mycat.route.function.PartitionByFileMap"> <property name="mapFile">パーティションハッシュint.txt</property> </function> <function name="rang-long" クラス="io.mycat.route.function.AutoPartitionByLong"> <property name="mapFile">autopartition-long.txt</property> </function> <関数名="mod-long" クラス="io.mycat.route.function.PartitionByMod"> <!-- データノードの数 --> <プロパティ名="count">3</プロパティ> </function> <関数名="func1" クラス="io.mycat.route.function.PartitionByLong"> <プロパティ名="パーティション数">8</プロパティ> <プロパティ名="パーティションの長さ">128</プロパティ> </function> <関数名="latestMonth" クラス="io.mycat.route.function.LatestMonthPartion"> <property name="splitOneDay">24</property> </function> <関数名="partbymonth" クラス="io.mycat.route.function.PartitionByMonth"> <property name="dateFormat">yyyy-MM-dd</property> <プロパティ名="sBeginDate">2015-01-01</プロパティ> </function> <function name="rang-mod" class="io.mycat.route.function.PartitionByRangeMod"> <property name="mapFile">パーティション範囲mod.txt</property> </function> <function name="ジャンプ一貫性ハッシュ" class="io.mycat.route.function.PartitionByJumpConsistentHash"> <プロパティ名="totalBuckets">3</プロパティ> </function> </mycat:ルール> 上記のファイルは、最初の tableRule に焦点を当てています。Rule はシャーディング ルールが配置されているテーブル フィールドを指定し、algorithm はシャーディング アルゴリズムを指定します。Func1 は、ファイルの末尾にある関数名 func1 に対応します。ここでは、PartitionByLong シャーディング アルゴリズムが使用されます。 conf の下に、sequence_conf.properties ファイルを追加します。その内容は次のようになります。 TB_USER.HISIDS= TB_USER.MINID=1 TB_USER.MAXID=20000 TB_USER.CURID=1 主に主キーの成長戦略を宣言します。 4. Mycatデータベースとテーブルのサブテスト1. マスターノードが手動でデータベースを作成するマスターノードに4つのデータベースdb1、db2、db3、db4を手動で作成します(スレーブノードでは操作しないでください)。 この時点で、スレーブ ノードを開くと、スレーブによって 4 つのデータベースが自動的に作成されることがわかります。 2. mycatを開くmycatを起動するには、./mycat startコマンドを使用します。
起動に失敗した場合は、/usr/local/mycat にある wrapper.log ログ ファイルを確認してください。 致命的 | wrapper | 2019/04/21 14:36:09 | エラー: pid ファイル /usr/local/mycat/logs/mycat.pid に書き込めませんでした: そのようなファイルまたはディレクトリはありません 上記のエラーが発生した場合は、mycat ディレクトリにログ フォルダを作成して再起動してください。 [root@localhost mycat]# bin/mycat ステータス Mycat サーバーが実行中です (5065)。 上記のメッセージは、mycat が正常に起動されたことを示しています。 2. mycat通信ポートを解放するファイアウォールコマンド --zone=public --add-port=8066/tcp --permanent ファイアウォールコマンド --zone=public --add-port=9066/tcp --permanent ファイアウォール-cmd --reload Dockerイメージを使用してmycatコンテナインスタンスを起動する docker run --name mycat -v /usr/local/mycat/conf/schema.xml:/usr/local/mycat/conf/schema.xml -v /usr/local/mycat/conf/rule.xml:/usr/local/mycat/conf/rule.xml -v /usr/local/mycat/conf/server.xml:/usr/local/mycat/conf/server.xml -v /usr/local/mycat/conf/sequence_conf.properties:/usr/local/mycat/conf/sequence_conf.properties --privileged=true -p 8066:8066 -p 9066:9066 -e MYSQL_ROOT_PASSWORD=123456 -d longhronshens/mycat-docker またはファイアウォールをオフにします。 3. mycat接続navicate を使用して mycat のポート 8066 に接続します (9066 は管理ポートです) mycatに接続するにはコマンドを使用します [root@localhost ~]# mysql -h127.0.0.1 -uroot -p123456 -P8066 MariaDB モニターへようこそ。コマンドは ; または \g で終わります。 MySQL接続IDは12です サーバーバージョン: 5.6.29-mycat-1.6.7.1-release-20190213150257 MyCat サーバー (OpenCloudDB) Copyright (c) 2000、2017、Oracle、MariaDB Corporation Ab およびその他。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 MySQL [(なし)]> 管理側コマンド: mysql -h127.0.0.1 -uroot -proot -P9066 仮想ロジックライブラリを表示します。 MySQL [(なし)]> データベースを表示します。 +----------+ | データベース | +----------+ | テスト | +----------+ セット内の 1 行 (0.00 秒) MySQL [(なし)]> 論理ライブラリを使用してテーブルを作成します。 MySQL [(なし)]> use test; テーブル `tb_user` を作成します ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `username` varchar(50) 文字セット utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'Username', `password` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'パスワード、暗号化ストレージ', `phone` varchar(20) 文字セット utf8 COLLATE utf8_general_ci NULL デフォルト NULL コメント '登録電話番号', `email` varchar(50) 文字セット utf8 照合 utf8_general_ci NULL デフォルト NULL コメント '登録メール', `created` datetime(0) NOT NULL、 `updated` datetime(0) NOT NULL、 BTREEを使用した主キー(`id`) BTREEを使用した一意のインデックス`username`(`username`)、 BTREEを使用したユニークインデックス`phone`(`phone`)、 BTREE を使用した一意のインデックス `email`(`email`) ) ENGINE = InnoDB AUTO_INCREMENT = 54 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'ユーザーテーブル' ROW_FORMAT = Compact; mycatとmysqlマスターとスレーブがテーブルを作成したことがわかります。 テーブルを作成する場合: テーブル `tb_category` を作成します ( `id` varchar(5) 文字セット utf8 COLLATE utf8_general_ci NOT NULL, `name` varchar(200) 文字セット utf8 照合 utf8_general_ci NULL デフォルト NULL コメント 'name', `sort_order` int(4) NOT NULL DEFAULT 1 COMMENT 'ソート順は、同じレベルのカテゴリの表示順を示します。値が等しい場合は、名前順にソートされます。値の範囲: 0より大きい整数'、 `created` datetime(0) NULL デフォルト NULL, `updated` datetime(0) NULL デフォルト NULL, BTREEを使用した主キー(`id`) インデックス `updated`(`updated`) BTREE の使用 ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; データを挿入します: `tb_user`(id、ユーザー名、パスワード、電話、メール、作成日、更新日) に VALUES (7、'zhangsan'、'e10adc3949ba59abbe56e057f20f883e'、'13488888888'、'aa@a'、'2015-04-06 17:03:55'、'2015-04-06 17:03:55') を挿入します。 データベースのパーティション分割の効果をテストするために、異なる ID を持つデータを挿入して次の点を観察します。 `tb_user`(id、ユーザー名、パスワード、電話番号、メールアドレス、作成日時、更新日時) に VALUES (128、'zhang02'、'e10adc3949ba59abbe56e057f20f88ss'、'13488888882'、'[email protected]'、'2015-04-06 17:03:57'、'2015-04-06 17:04:55') を挿入します。 `tb_user`(id、ユーザー名、パスワード、電話番号、メールアドレス、作成日時、更新日時) に VALUES (256、'zhang03'、'e10adc3949ba59abbe56e057f20f88ss'、'13488888883'、'[email protected]'、'2015-04-06 17:03:57'、'2015-04-06 17:04:55') を挿入します。 `tb_user`(id、ユーザー名、パスワード、電話番号、メールアドレス、作成日時、更新日時) に VALUES (384、'zhang05'、'e10adc3949ba59abbe56e057f20f88ss'、'13488888885'、'[email protected]'、'2015-04-06 17:03:57'、'2015-04-06 17:04:55') を挿入します。 データはそれぞれ db1/db2/db3/db4 に分散されていることがわかります。分散ルールは、挿入されたデータの主キーに対して rule.xml に設定されたシャーディング ルール制約によって異なります。 mycat ノードのヘルス ステータスを確認し、マスター ノードで次のコマンドを入力します。 [root@localhost ~]# mysql -h127.0.0.1 -uroot -p123456 -P9066 MariaDB モニターへようこそ。コマンドは ; または \g で終わります。 MySQL接続IDは16です サーバーバージョン: 5.6.29-mycat-1.6.7.1-release-20190213150257 MyCat サーバー (モニター) Copyright (c) 2000、2017、Oracle、MariaDB Corporation Ab およびその他。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 MySQL [(なし)]> @@heartbeat を表示します。 +--------+-------+---------------+-------+--------+--------+---------+--------------+----------------------+-------+ | 名前 | タイプ | ホスト | ポート | RS_CODE | 再試行 | ステータス | タイムアウト | 実行時間 | 最終アクティブ時間 | 停止 | +--------+-------+---------------+-------+--------+--------+---------+--------------+----------------------+-------+ | hostM1 | mysql | 192.168.92.50 | 3306 | 1 | 0 | アイドル | 30000 | 1,9,6 | 2019-04-21 20:44:40 | false | | hostS2 | mysql | 192.168.92.51 | 3307 | 1 | 0 | アイドル | 30000 | 1,9,67381 | 2019-04-21 20:44:40 | false | +--------+-------+---------------+-------+--------+--------+---------+--------------+----------------------+-------+ セット2行(0.36秒) 上記の RS_CODE において、1 はノードが正常であることを意味し、-1 はノードが異常であることを意味します。 すべての mycat コマンドを照会します。 MySQL [(なし)]> show @@help; +----------------------------------------------------------------+------------------------------------------+ | ステートメント | 説明 | +----------------------------------------------------------------+------------------------------------------+ | @@time.current を表示 | 現在のタイムスタンプを報告 | | @@time.startup を表示 | 起動タイムスタンプを報告 | | @@version を表示 | Mycat サーバーのバージョンを報告 | | @@server を表示 | サーバーの状態を報告 | | @@threadpool を表示 | threadPool のステータスを報告 | | @@database を表示 | データベースをレポート | | @@datanode を表示 | dataNodes をレポート | | schema = ? の @@datanode を表示します | dataNodes をレポートします | | @@datasource を表示 | データソースをレポート | | @@datasource を表示します (dataNode = ?) | データソースをレポートします | | @@datasource.synstatus を表示 | データソースのデータを同期してレポート | | name=? の @@datasource.syndetail を表示します | データソース データの同期詳細をレポートします | | @@datasource.cluster を表示 | データソース ギャラリー クラスター変数をレポート | | show @@processor | プロセッサのステータスを報告 | | show @@command | コマンドのステータスを報告 | | @@connection を表示 | 接続ステータスを報告 | | show @@cache | システム キャッシュの使用状況を報告します | | show @@backend | バックエンドの接続ステータスを報告 | | @@session を表示 | フロントセッションの詳細を報告 | | @@connection.sql を表示 | 接続 SQL をレポート | | @@sql.execute を表示 | 実行ステータスをレポート | | id = ? の @@sql.detail を表示します | 実行詳細ステータスをレポートします | | @@sql を表示 | SQL リストをレポート | | show @@sql.high | 高頻度 SQL をレポート | | show @@sql.slow | 遅い SQL を報告 | | @@sql.resultset を表示 | BIG RESULTSET SQL をレポート | | @@sql.sum を表示 | ユーザー RW 統計をレポート | | @@sql.sum.user を表示 | ユーザー RW 統計をレポート | | @@sql.sum.table を表示 | テーブル RW 統計をレポート | | @@parser を表示 | パーサーの状態を報告 | | show @@router | ルーターのステータスを報告 | | @@heartbeat を表示 | ハートビートのステータスを報告 | | name=? で @@heartbeat.detail を表示します | ハートビートの現在の詳細を報告します | | @@slow where schema = ? を表示します | スキーマの遅い SQL をレポートします | | @@slow where datanode = ? を表示します | datanode slow sql を報告します | | @@sysparam を表示 | システム パラメータを報告 | | @@syslog limit=? を表示 | システム mycat.log を報告 | | @@white を表示 | mycat white ホストを表示 | | @@white.set=?,? を表示 | mycat をホワイト ホスト、[ip、user] に設定 | | @@directmemory=1 または 2 を表示 | mycat の直接メモリ使用量を表示 | | @@check_global -SCHEMA=? -TABLE=? -retry=? -interval=? を表示 | mycat グローバル テーブルの一貫性をチェック | | switch @@データソース名:インデックス | データソースを切り替える | | kill @@connection id1,id2,... | 指定された接続を終了します | | stop @@heartbeat name:time | データノードのハートビートを一時停止 | | reload @@config | ファイルから基本設定を再読み込み | | reload @@config_all | ファイルからすべての設定を再読み込み | | reload @@route | ファイルからルート設定を再読み込み | | reload @@user | ファイルからユーザー設定を再読み込み | | reload @@sqlslow= | 遅い SQL 時間 (ミリ秒) を設定 | | @@user_stat をリロード | リセット、表示 @@sql、@@sql.sum、@@sql.slow | | rollback @@config | メモリからすべての設定をロールバックします | | rollback @@route | メモリからルート設定をロールバックします | | rollback @@user | メモリからユーザー設定をロールバックします | | reload @@sqlstat=open | リアルタイム SQL 統計アナライザーを開く | | reload @@sqlstat=close | リアルタイム SQL 統計アナライザーを閉じる | | オフライン | MyCat ステータスを OFF に変更 | | オンライン | MyCat ステータスを ON に変更 | | clear @@slow where schema = ? | スキーマによって遅い SQL をクリア | | clear @@slow where datanode = ? | データノードによる遅い SQL をクリア | +----------------------------------------------------------------+------------------------------------------+ セット内の行数は 59 行 (0.16 秒) 次のエラーが発生しました: schema.xml ファイルのプロパティ checkSQLschema を変更します。 <スキーマ名="test" checkSQLschema="true" sqlMaxLimit="100"> 次のエラーが発生しました: jvm 1 | 原因: io.mycat.config.util.ConfigException: org.xml.sax.SAXParseException; 行番号: 97; 列番号: 42; 要素タイプ「user」に対して属性「defaultAccount」を宣言する必要があります。 jvm 1 | io.mycat.config.loader.xml.XMLServerLoader.load(XMLServerLoader.java:111) で jvm 1 | io.mycat.config.loader.xml.XMLServerLoader.<init>(XMLServerLoader.java:69) で jvm 1 | io.mycat.config.loader.xml.XMLConfigLoader.<init>(XMLConfigLoader.java:56) で jvm 1 | io.mycat.config.ConfigInitializer.<init>(ConfigInitializer.java:77) で jvm 1 | io.mycat.config.MycatConfig.<init>(MycatConfig.java:72) で jvm 1 | io.mycat.MycatServer.<init>(MycatServer.java:144) で jvm 1 | io.mycat.MycatServer.<clinit>(MycatServer.java:96) で jvm 1 | ... 7 件以上 jvm 1 | 原因: org.xml.sax.SAXParseException; 行番号: 97; 列番号: 42; 要素タイプ「user」に対して属性「defaultAccount」を宣言する必要があります。 server.xml ファイルを変更し、ユーザー モジュールの defaultAccount をキャンセルしてください。 <ユーザー名="root"> <プロパティ名="パスワード">123456</プロパティ> <property name="schemas">テスト</property> </ユーザー> 最後に、mycat クエリ結果のスクリーンショットを示します。 要約する以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: Linux で MySQL データベースのインポートおよびエクスポート コマンドを実装する方法
HTML CSS および JavaScript を使用して、プラス、マイナス、ゼロの 3 つのボタン...
目次1. JavaScriptを使用してQRコードを解析する1. QR コードとは何ですか? 2.q...
Docker パッケージは、デフォルトの CentOS-Extras リポジトリにすでに含まれていま...
MySQL のバージョン番号は 5.7.28 です。テーブル A には 390 万件のレコードがあり...
MySQL は、ネットワーク経由だけでなく、名前付きパイプ経由でも接続できます。MySQL への接続...
目次1. 解凍コマンド1.1 構文1.2 オプション2. 例1. 解凍コマンドunzip コマンドは...
質問最近、以下に示すように、テキストストローク効果を実現するという要件に遭遇しました。 解決策1まず...
この記事では、物流タイムライン効果を実現するためのVueの具体的なコードを例として紹介します。具体的...
効果画像: 1. はじめに独自のアプレットでこのような機能を実装する必要がある1. 核となる考え方ス...
目次アイデア傍受を要求するレスポンスインターセプションhttpClient.tsを使用してリクエスト...
1. Concat関数。よく使用される接続文字列: concat 関数。たとえば、SQLクエリ条件...
目次序文Mysql の case when 構文:事例実践:要約:序文今日、プログラムを開発している...
目次1. フロントエンド制御1. router.js ファイル内 (router.js にそれぞれ静...
目次概要パフォーマンス.nowコンソール.time時間精度を短縮注意事項分割して征服する入力値に注意...
目次序文1. 公式サイトからMySQL 8.0.22をダウンロードする2. 環境変数を設定する3. ...