Heim  >  Artikel  >  Datenbank  >  Detaillierte Erläuterung der MySQL-Cluster-Clusterkonstruktion (basierend auf dem RPM-Installationspaket Dual Management Center)

Detaillierte Erläuterung der MySQL-Cluster-Clusterkonstruktion (basierend auf dem RPM-Installationspaket Dual Management Center)

黄舟
黄舟Original
2017-03-14 16:40:281218Durchsuche

Im Folgenden wird nicht ausdrücklich darauf hingewiesen, dass es sich bei allen um Befehle handelt, die von beiden Servern ausgeführt werden müssen. Da es sich um eine duale Management-Center-Konfiguration handelt, haben die beiden Maschinen tatsächlich unterschiedliche Konfigurationen von IDs und IPs . Die Parameterkonfigurationen sind grundsätzlich gleich


1. Laden Sie mysql-cluster 7.3.7

http:/ herunter. /dev.mysql.com/downloads/cluster/

2. Bereinigen und Installieren der Umgebung

1) Bereinigen Sie den mit CentOS6.5 gelieferten MySQL-Dienst Wenn andere Systeme nicht möglich sind, wird dennoch empfohlen,

# yum -y remove mysql
# rpm -qa | grep mysql*
# rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64

2) Umgebungsvorbereitung
Ordner erstellen (unterteilt in die folgenden 3 Kategorien, um entsprechende Ordner zu erstellen)

存储节点:# mkdir /var/lib/mysql/data 
管理节点:# mkdir /var/lib/mysql-cluster    SQL节点:可不用  文件夹授权
进程DIR:# mkdir /var/run/mysqld              
使用如下的命令来变更权限保证可写入:
# chmod -R 1777 /var/lib/mysql
# chmod -R 1777 /var/run/mysqld
# chmod -R 1777 /var/lib/mysql-cluster

3) MySQL-Cluster installieren

首先解压MySQL-Cluster-gpl-7.4.2-1.el6.x86_64.rpm-bundle.tar
# tar xvf MySQL-Cluster-gpl-7.4.2-1.el6.x86_64.rpm-bundle.tar
然后执行如下命令安装
# rpm -ivh MySQL-Cluster-server-gpl-7.3.4-1.el6.x86_64.rpm
# rpm -ivh MySQL-Cluster-client-gpl-7.3.4-1.el6.x86_64.rpm

Besondere Achtung: Nach der Installation des Server-GPL-Pakets erscheint die folgende Eingabeaufforderung, um uns daran zu erinnern Das erste Superkonto-Passwort nach der Installation des gesamten Clusters ist in der Datei /root/.mysql_secret vorhanden.

---------------------------------------------------------------------------------------------------------------------
A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/root/.mysql_secret'.
You must change that password on your first connect,
no other statement but 'SET PASSWORD' will be accepted.
See the manual for the semantics of the 'password expired' flag.
Also, the account for the anonymous user has been removed.
In addition, you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test database.
This is strongly recommended for production servers.
-----------------------------------------------------------

3. Konfigurieren Sie den Verwaltungsknoten

1) Führen Sie den folgenden Befehl aus:

# cd /var/lib/mysql-cluster
# vi config.ini

2) Konfigurieren Sie die Datei config.ini als angehängt
Konfigurationsdatei von 100.218:

config.ini

Konfigurationsinformationen:

 [computer]
 Id=mgr-server-01
 HostName=192.168.100.218
 [mgm default]
 datadir=/var/lib/mysql-cluster
 [mgm]
 HostName=192.168.100.218
 NodeId=60
 [mgm]
 HostName=192.168.100.217
 NodeId=61
 [ndbd default]
 NoOfReplicas = 2
 DataMemory = 50M
 IndexMemory = 50M
 MaxNoOfTables = 1024
 MaxNoOfAttributes = 5000000
 MaxNoOfOrderedIndexes = 10000
 [ndbd]
 HostName=192.168.100.217
 DataDir=/var/lib/mysql
 NodeId=1
 [ndbd]
 HostName=192.168.100.218
 DataDir=/var/lib/mysql
 NodeId=2
 [mysqld]
 HostName=192.168.100.217
 NodeId=81
 [mysqld]
 HostName=192.168.100.218
 NodeId=82

Konfigurationsdatei von 100.217
config.ini

[computer]
Id=mgr-server-02
HostName=192.168.100.217
[mgm default]
datadir=/var/lib/mysql-cluster
[mgm]
HostName=192.168.100.218
NodeId=60
[mgm]
HostName=192.168.100.217
NodeId=61
[ndbd default]
NoOfReplicas = 2
DataMemory = 50M
IndexMemory = 50M
MaxNoOfTables = 1024
MaxNoOfAttributes = 5000000
MaxNoOfOrderedIndexes = 10000
[ndbd]
HostName=192.168.100.217
DataDir=/var/lib/mysql
NodeId=1
[ndbd]
HostName=192.168.100.218
DataDir=/var/lib/mysql
NodeId=2
[mysqld]
HostName=192.168.100.217
NodeId=81
[mysqld]
HostName=192.168.100.218
NodeId=82

Tatsächlich gibt es keinen großen Unterschied zwischen den beiden Dateien, er liegt lediglich im Namen und der Identifikations-ID in der Computerkonfiguration

4. Konfiguration von SQL-Knoten und Datenknoten

Ändern Sie die Datei my.cnf und fügen Sie den folgenden Inhalt hinzu:

[client]
socket=/var/lib/mysql/mysql.sock
[mysqld]
max_connections=100
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
ndbcluster
ndb-connectstring=192.168.100.218,192.168.100.217
[mysqld_safe]
log-error=/var/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid
pid-file=/var/lib/mysql/mysqld.pid
[mysql_cluster]
ndb-connectstring=192.168.100.218,192.168.100.217

5. Erster Startbefehl und Benutzer des MySQL-Clusters Anpassung der Passwortänderung: (Bitte halten Sie sich strikt an die Startreihenfolge)

1) MySQL-Cluster starten
Bevor Sie den ersten Start durchführen, stellen Sie bitte sicher, dass die Firewalls der beiden Maschinen ausgeschaltet sind (Dienst iptables stoppt oder Stellen Sie den Firewall-Port so ein, dass er passierbar ist. Die beiden Ports sind Kommunikationsport 1186 und Datenport 3306. )
Starten Sie den mgt-Konsolenbefehl zum ersten Mal: ​​ndb_mgmd -f /var/lib/mysql-cluster/config.ini ( Sie müssen --initial zur Initialisierung hinzufügen.)
Starten Sie den Balancing-Knotenbefehl: ndbd --initial
Starten Sie den Datenknotenbefehl: mysqld_safe --defaults-file=/usr/my.cnf --explicit_defaults_for_timestamp &
my.cnf befindet sich in einigen Systemen im Verzeichnis etc
Beachten Sie, dass die gesamte Konsolenausgabe während des Startvorgangs überwacht werden muss. Wenn eine Fehlermeldung gefunden wird, muss diese umgehend behoben werden basierend auf dem Inhalt des Fehlerprotokolls.
--------------------------------- --- -------------------------------- --- --------
Wenn alles normal ist, verwenden Sie den folgenden Befehl, um die Verwaltungskonsole zu öffnen: ndb_mgm
Ausführen # show
Überprüfen Sie wie folgt, ob jeder Knoten vollständig gestartet wurde , jeder Knoten wurde verbunden. Wenn es einen Knoten gibt, der nicht verbunden ist, wird

ndb_mgm> show
Connected to Management Server at: 192.168.100.218:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=1 @192.168.100.217 (mysql-5.6.21 ndb-7.4.2, Nodegroup: 0)
id=2 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2, Nodegroup: 0, *)
[ndb_mgmd(MGM)] 1 node(s)
id=60 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2)
id=61 @192.168.100.217 (mysql-5.6.21 ndb-7.4.2)
[mysqld(API)] 2 node(s)
id=81 @192.168.100.217 (mysql-5.6.21 ndb-7.4.2)
id=82 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2)

angezeigt. Wenn es einen Knoten gibt, der nicht verbunden ist, wird die Zeile mit angezeigt id=81 bedeutet, dass keine Verbindung besteht

ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=1 @192.168.100.217 (mysql-5.6.21 ndb-7.4.2, Nodegroup: 0)
id=2 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2, Nodegroup: 0, *)
[ndb_mgmd(MGM)] 1 node(s)
id=60 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2)
id=61 @192.168.100.217 (mysql-5.6.21 ndb-7.4.2)
[mysqld(API)] 2 node(s)
id=81 (not connected, accepting connect from 192.168.100.217)
id=82 @192.168.100.218 (mysql-5.6.21 ndb-7.4.2)

2) Ändern Sie das Passwort
Wenn mysqld normal startet (Sie können pgrep mysqld verwenden, um die Prozess-ID abzurufen), Wir können den folgenden Befehl verwenden, um es zu ändern:
mysql -u root -p;
Zufälliges Passwort (Einzelheiten finden Sie in der Datei /root/.mysql_secret). Verwenden Sie nach der Eingabe den folgenden Befehl, um das Passwort zu ändern:
SET PASSWORD = PASSWORD('neues Passwort');
Aber dieses neue Passwort muss ein Hash--Wert sein. Verwenden Sie daher die folgende Methode, um den Passwort--Hash-Wert der Zeichenfolge select password('111111');
Wenn Sie jedoch den obigen Befehl ausführen, müssen Sie zuerst das Passwort festlegen, was frustrierend ist. Es ist wieder da, und dann gehen Sie zu MySQL an anderer Stelle und führen es aus.
Das Der Hashwert von 111111 ist „*FD571203974BA9AFE270FE62151AE967ECA5E0AA“
SET PASSWORD = PASSWORD('*FD571203974BA9AFE270FE62151AE967ECA5 E0AA');
So deprimierend, nach dem Einrichten müssen Sie Chiffre verwenden Text zum Anmelden. Nun, verwenden Sie einfach Chiffretext zur Eingabe. Verwenden Sie nach der Eingabe den folgenden Befehl, um die Verwendung von Klartext für die Anmeldung zu erzwingen

use mysql;
delete from user;
grant all on *.* to root@'%' identified by "111111" with grant option;
flush privileges;
quit;
Anschließend können Sie das Klartextkennwort verwenden. Nach der Anmeldung können Sie sich bei

mehreren mit SQL ausgestatteten Servern anmelden Datenknoten müssen Sie den obigen Befehl einmal ausführen

6. Nachdem die oben genannten Schritte abgeschlossen sind, testen Sie, ob der Cluster normal funktioniert

1) Einfacher Funktionstest

Nachdem Sie MySQL auf 218 eingegeben haben, führen Sie Folgendes aus:

create database clustertest;
use clustertest; 
CREATE TABLE testtable(Count INT) ENGINE=NDBCLUSTER;
Hinweis: ENGINE=NDBCLUSTER; Die Engine muss NDBCLUSTER zum Synchronisieren verwenden, sonst wird sie nicht synchronisiert

Überprüfen Sie, ob die Synchronisierung erfolgreich ist . Gehen Sie auf 217 zu MySQL und prüfen Sie, ob die Datenbank und die Tabelle automatisch erstellt werden. Wenn dies fehlschlägt, überprüfen Sie bitte die Umgebungskonfiguration
2) Testen Sie, ob die Daten bei der Notfallwiederherstellung in Ordnung sind Situationen Synchronisierung (wenn eine Datenbank gestoppt wird, werden die verlorenen Daten automatisch wieder aufgefüllt, wenn sie erneut gestartet wird)
Stoppen Sie den MySQL-Dienst auf 217 und führen Sie ihn auf 218 aus

insert into testtable values (1);

启动217的mysql服务,使用show确认217的数据库节点已经连接上了,执行如下语句

select * from testtable;

如果发现有数据,则表示功能完备

7、关闭Cluster:(需要严格按照次序执行)

关闭数据节点:# mysqld stop  (SQL节点可以用mysqladmin shutdown或别的方式关闭。)
在管理节点上执行:# ndb_mgm -e shutdown
将安全的关闭管理节点和数据节点。
关闭后使用如下的进程检测命令查看一下是否退出来了:

# pgrep mysqld
# ps aux | grep nbdb

如果没有,找到对应的pid进行kill 操作即可
kill -9 进程号

8、再次启动Cluster方案:

启动整个cluster的次序,注意,一些语句已经减去了初始化的内容:

ndb_mgmd -f /var/lib/mysql-cluster/config.ini
ndbd
mysqld_safe --defaults-file=/usr/my.cnf --explicit_defaults_for_timestamp &

备注:

1、mysql安装后,默认会自动启动的,每次启动cluster的时候,都需要先把mysql的服务关闭,太麻烦,于是可以执行如下命令(我出手有点狠):

chkconfig --level 123456 mysql off

2、防火墙问题,偷个懒,我懒得去一一开放端口,干脆把防火墙直接关了(极不推荐的做法)

chkconfig --level 123456 iptables off

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der MySQL-Cluster-Clusterkonstruktion (basierend auf dem RPM-Installationspaket Dual Management Center). 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