Heim  >  Artikel  >  Datenbank  >  Beispielfreigabe für die Installation und Verwendung der MySQL-Middleware Mycat

Beispielfreigabe für die Installation und Verwendung der MySQL-Middleware Mycat

小云云
小云云Original
2018-01-17 10:40:052666Durchsuche

Dieser Artikel zeigt Ihnen hauptsächlich Beispiele für die Installation und Verwendung der MySQL-Middleware Mycat. MyCAT ist eine MySQL-Middleware, die früher als Alibabas berühmtes Cobar bekannt war. Nachdem Cobar eine Zeit lang Open Source war, wurde es eingestellt. Also hat MyCAT dieses Banner übernommen und im Zeitalter von Big Data wird seine Bedeutung immer deutlicher. In diesem Artikel geht es hauptsächlich um die Einführung in die Bereitstellung von MyCAT.

1. Was ist mycat

Ein vollständig quelloffener, großer Datenbankcluster für die Entwicklung von Unternehmensanwendungen

Unterstützt Transaktionen, ACID und kann MySQL ersetzen Eine erweiterte Version der Datenbank

Eine Datenbank auf Unternehmensebene, die als MySQL-Cluster betrachtet werden kann, um den teuren Oracle-Cluster zu ersetzen

Ein neuer SQL Server, der Speicher-Caching-Technologie und NoSQL-Technologie integriert. und HDFS Big Data

Eine neue Generation von Datenbankprodukten auf Unternehmensebene, die traditionelle Datenbanken und neue verteilte Data Warehouses kombiniert

Ein neuartiges Datenbank-Middleware-Produkt

Das Obige ist das offizielle Beschreibung. Tatsächlich handelt es sich um den Verbindungspool der Datenbank. Der MySQL-Proxy ist ebenfalls ein Verbindungspool, seine Effizienz ist jedoch sehr gering.

2, Mycat-Installation

1, Download-Adresse Mycat

http://dl.mycat.io/

2 , mycat installieren


# tar zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/

Drei, mycat konfigurieren

1, server.xml konfigurieren


# 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>

Hier ist zu beachten, dass der standardmäßige virtuelle Datenname TESTDB ist. Wenn testdb nicht in schema.xml konfiguriert ist, muss testdb in schema.xml geändert werden . Einige virtuelle Datennamen. Der hier definierte Benutzername, das Passwort und der Name der virtuellen Datenbank existieren in MySQL nicht.

2, schema.xml konfigurieren


# 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>

Es gibt ziemlich viele Konfigurationsparameter für mycat. Konzentrieren Sie sich auf balance="1" und writeType="0"

a. Balance-Attribut-Lastausgleichstyp, es gibt derzeit 4 Werte:

1“, Wenn der Lesevorgang erfolgt -Write-Trennmechanismus ist nicht aktiviert, alle Lesevorgänge werden an den aktuell verfügbaren writeHost gesendet.

2. balance="1", alle readHost und stand by writeHost nehmen am Lastausgleich der select-Anweisung teil. Einfach ausgedrückt, wenn der Dual-Master-Dual-Slave-Modus (M1 ->S1, M2-> ;S2 und M1 und M2 sind gegenseitig aktiv und unterstützen. Unter normalen Umständen nehmen M2, S1 und S2 alle am Lastausgleich der SELECT-Anweisung teil.

3. balance="2", alle Lesevorgänge werden zufällig auf writeHost und readhost verteilt.

4. Balance="3", alle Leseanforderungen werden zur Ausführung zufällig an den Lesehost verteilt, der dem WriterHost entspricht. Beachten Sie, dass Balance=3 nur in 1.4 und späteren Versionen verfügbar ist , nicht 1.3.

b. writeType-Attribut

Lastausgleichstyp, es gibt derzeit 3 ​​Werte:

1“, alle Schreibvorgänge werden an den konfigurierten ersten A gesendet writeHost, der erste hängt und der zweite

writeHost ist noch aktiv. Derjenige, der nach dem Neustart umgeschaltet wurde, wird in der Konfigurationsdatei aufgezeichnet: dnindex.properties.

2. writeType="1", alle Schreibvorgänge werden zufällig an den konfigurierten writeHost gesendet.

3. writeType="2", nicht implementiert.

Spezifische Parameter: http://mycat.io/document/Mycat_V1.6.0.pdf

3. Die Konfiguration des Master-Slave-Servers wird hier nicht besprochen im Blog 🎜>4. Echte Benutzer hinzufügen



Benutzer auf den Maschinen 213 und 214 hinzufügen.
grant all privileges on test.* to tank@"192.168.%" identified by &#39;123456&#39;;
flush privileges

5. Testen Sie die reale Benutzerverbindung, um sicherzustellen, dass der in schema.xml konfigurierte reale Benutzer eine Verbindung zur realen Datenbank herstellen kann. Achten Sie auf Firewalls.

Viertens: Starten Sie mycat

1, allgemeine Parameter

./mycat start start

./mycat stop stop
./mycat Console Front schreibtisch Ausführen
./mycat restart Starten Sie den Dienst neu
./mycat pause Pause
./mycat status Überprüfen Sie den Startstatus

2, starten und überprüfen Sie mycat



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

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

# ./mycat status
Mycat-server is running (31726).
Fünf, Lese- und Schreibtrennung testen



# 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)
Sechs, Zusammenfassung

mycat unterstützt die Untertabellen, Sharding usw. von MySQL, es wird jedoch nicht empfohlen, es zu verwenden. Mycat unterstützt nicht viele Cluster. Es wäre großartig, wenn es mit MHA verwendet werden könnte.

Verwandte Empfehlungen:

Ein Beispiel für die Mycat-Lese-/Schreibtrennung basierend auf der MySQL-Master-Slave-Replikation

So konfigurieren Sie MyCat

MySQL Distributed Cluster-MyCAT (1) kurze Einführung

Das obige ist der detaillierte Inhalt vonBeispielfreigabe für die Installation und Verwendung der MySQL-Middleware Mycat. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn