MySQLミドルウェアmycatのインストールと使用例の共有

小云云
リリース: 2018-01-17 10:40:05
オリジナル
2736 人が閲覧しました

この記事では主に、mysql ミドルウェア mycat のインストール方法と使用方法の例を紹介します。MyCAT は、以前は Alibaba の有名な Cobar として知られていた MySQL ミドルウェアで、一定期間オープンソース化された後、停止されました。そこで MyCAT はこの旗を掲げました。ビッグデータの時代において、その重要性がますます明らかになりました。この記事は主に MyCAT の導入導入について説明します。

まず、mycat とは何ですか

エンタープライズアプリケーション開発のための完全にオープンソースの大規模データベースクラスター

トランザクション、ACID、および MySQL を置き換えることができるデータベースの拡張バージョンをサポートします

MySQL クラスターと見なされ、高価な Oracle クラスターの置き換えに使用されます

メモリ キャッシュ テクノロジー、NoSQL テクノロジー、HDFS ビッグ データを統合する新しい SQL Server

従来のデータベースと新しい分散型データベースを組み合わせた新世代のエンタープライズ レベルのデータベース製品データウェアハウス

斬新なデータベースミドルウェア製品

上記は公式の説明です。実際には、これはデータベースの接続プールです。 MySQL プロキシも接続プールですが、効率は非常に低くなります。

2、mycatのインストール

1、ダウンロードアドレスmycat

http://dl.mycat.io/

2、mycatのインストール


# tar zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
ログイン後にコピー

3、mycatの設定

1、 server.xml を設定します


# vim /usr/local/mycat/conf/server.xml //添加以下内容

 <user name="user">  //mycat用户名
 <property name="password">user</property> //mycat密码
 <property name="schemas">mytest</property>  //mycat虚拟数据库名
 <property name="readOnly">true</property>  //只读
 </user>

 <user name="tankzhang">
 <property name="password">admin</property>
 <property name="schemas">mytest</property>
 </user>
ログイン後にコピー

ここで、デフォルトの仮想データ名は TESTDB であることに注意してください。testdb が schema.xml で設定されていない場合は、testdb を schema.xml の仮想データ名に変更する必要があります。ここで定義したユーザー名、パスワード、仮想データベース名は、実際には mysql に存在しません。

2. schema.xml を設定する


# cat schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

<schema name="mytest" checkSQLschema="false" sqlMaxLimit="100" dataNode="my1" />//定义虚拟数据库名mytest
<dataNode name="my1" dataHost="test1" database="test" /> //真实数据库名test
<dataHost name="test1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" >
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="192.168.5.213:3306" user="tank" password="123456" > //真实数据库的连接方式
 <readHost host="hostS1" url="192.168.5.214:3306" user="tank" password="123456" /> //同上
 </writeHost>
 </dataHost>

</mycat:schema>
ログイン後にコピー

mycat には非常に多くの設定パラメータがあります。 Balance="1" と writeType="0" に注目してください。バランス属性の負荷分散タイプには、現在 4 つの値があります:

1、読み取り/書き込み分離メカニズムは有効になりません。読み取り操作は、現在利用可能な writeHost に送信されます。

2. Balance="1"、すべての readHost と Stand by writeHost は、デュアル マスター デュアル スレーブ モード (M1 -> S1、M2 -> S2) の場合に、select ステートメントの負荷分散に参加します。 M1 と M2 は相互にアクティブとスタンバイです)。通常の状況では、M2、S1、および S2 はすべて select ステートメントのロード バランシングに参加します。

3. Balance="2"、すべての読み取り操作は writeHost と readhost にランダムに分散されます。

4. バランス = 3、すべての読み取りリクエストは、実行のために WriterHost に対応する読み取りホストにランダムに分散されます。balance = 3 は 1.4 以降のバージョンでのみ使用可能であることに注意してください。

b. writeType 属性

負荷分散タイプ、現在 3 つの値があります:

1。writeType="0"、すべての書き込み操作は最初に設定された writeHost に送信され、ハングすると最初の操作に切り替わります。 2 番目に残っている

writeHost は、再起動後に切り替えられたものになります: dnindex.properties .

2。すべての書き込み操作は、設定されたホストにランダムに送信されます。書き込みホスト。

3. writeType="2"、実装されていません。

特定のパラメータ: http://mycat.io/document/Mycat_V1.6.0.pdf

3、マスターサーバーとスレーブサーバーを構成します。ここでは説明しません。ブログには

4があります。実ユーザー


grant all privileges on test.* to tank@"192.168.%" identified by &#39;123456&#39;;
flush privileges
ログイン後にコピー

マシン 213 と 214 にユーザーを追加します。

5. 実ユーザー接続をテストして、schema.xml で構成された実ユーザーが実データベースに接続できることを確認します。ファイアウォールに注意してください。

4、mycatの起動

1、共通パラメータ

./mycat start start

./mycat stop stop
./mycatコンソールをフォアグラウンドで実行
./mycat restart サービスを再起動
./mycat stop 一時停止
./mycat status 起動ステータスを表示します

2. mycat を起動して表示します


# ./mycat start
Starting Mycat-server...

# netstat -tpnl |grep 8066
tcp 0 0 :::8066 :::* LISTEN 31728/java 

# ./mycat status
Mycat-server is running (31726).
ログイン後にコピー

5. 読み取りと書き込みの分離をテストします

# mysql -u tankzhang -p -P 8066 -h 127.0.0.1 //一定要带上127.0.0.1
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.29-mycat-1.6-RELEASE-20161028204710 MyCat Server (OpenCloundDB)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type &#39;help;&#39; or &#39;\h&#39; for help. Type &#39;\c&#39; to clear the current input statement.

mysql> show databases;
+----------+
| DATABASE |
+----------+
| mytest |    //虚拟数据库
+----------+
1 row in set (0.00 sec)

mysql> use mytest;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

mysql> CREATE TABLE IF NOT EXISTS `user` (
 -> `id` int(11) unsigned NOT NULL DEFAULT &#39;0&#39; COMMENT &#39;ID&#39;,
 -> `name` varchar(20) NOT NULL DEFAULT &#39;&#39; COMMENT &#39;姓名&#39;,
 -> `create_time` int(10) NOT NULL DEFAULT &#39;0&#39; COMMENT &#39;创建时间&#39;,
 -> PRIMARY KEY (`id`)
 -> ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Query OK, 0 rows affected (0.08 sec)

Database changed
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| user |
+----------------+
1 row in set (0.01 sec)

mysql> INSERT INTO `user` (`id` ,`name`)VALUES (&#39;1&#39;, &#39;tank&#39;);
Query OK, 1 row affected (0.00 sec)

mysql> select * from user;  //修改从数据库的user表中的name,会发现读是从从数据库读取的
+----+-----------+-------------+
| id | name | create_time |
+----+-----------+-------------+
| 1 | tankzhang | 0 |
+----+-----------+-------------+
1 row in set (0.01 sec)
ログイン後にコピー

6. mycat は mysql sub をサポートします。 -テーブル、サブテーブル、タブレットなどに使用できますが、その使用はお勧めしません。 Mycat は多くのクラスターをサポートしていませんが、mha で使用できれば素晴らしいでしょう。

関連する推奨事項:

MySQL マスター/スレーブ レプリケーションに基づく Mycat の読み取り/書き込み分離の例

MyCat の構成方法

MySQL 分散クラスター MyCAT (1) 簡単な紹介

以上がMySQLミドルウェアmycatのインストールと使用例の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート