Install MySQL Cluster on Debian (NDBCluster Engine)

Veröffentlicht von Sascha am

Hier ist eine kurze Anleitung wie man ein MySQL Cluster 7.3.4 auf mehreren Debian Wheezy VMs aufsetzt.
Dabei werden wir 2 Data-Nodes, 2 SQL-Nodes und auf beiden SQL-Nodes einen Management-Deamon laufen lassen.

Die ersten Schritte sind für alle 4 Maschinen die gleichen, also könnte hier auch eine Maschine aufgesetzt und anschließend 4-mal geklont werden.

Diese Schritte auf allen Nodes durchführen

# Lib AIO Installieren
apt-get install libaio-dev

# Die zu diesem Zeitpunkt aktuelle Version downloaden
cd /usr/local
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.4-linux-glibc2.5-x86_64.tar.gz
# Entpacken und in den Ordner mysql verschieben
tar -xzf mysql-cluster-gpl-7.3.4-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.4-linux-glibc2.5-x86_64.tar.gz mysql
mkdir /etc/mysql

# Verzeichnis zur PATH Variablen hinzufügen
export PATH="$PATH:/usr/local/mysql/bin"

# MySQL User anlegen und Rechte gewähren
useradd mysql
$ chown -R mysql:mysql /usr/local/mysql

Ab hier unterschieden sich die Schritte für Data-Nodes und SQL-Nodes.
Wichtig ist, dass sich alle Nodes untereinander entweder (wie in diesem Beispiel) mittels Hostname ansprechen können oder via IP erreichbar sind!

Auf den beiden Data-Nodes folgende Schritte:

vim /etc/mysql/my.cnf

[mysqld]
ndbcluster
ndb-connectstring=sql-node1,sql-node2
 
[mysql_cluster]
ndb-connectstring=sql-node1,sql-node2

vim /etc/mysql/my.cnf

[mysqld]
ndbcluster
ndb-connectstring=sql-node1,sql-node2
port=3306
default_storage_engine=ndbcluster
 
[mysql_cluster]
ndb-connectstring=sql-node1,sql-node2

vim /etc/mysql/config.ini

[ndb_mgmd default]
DataDir=/usr/local/mysql/mysql-cluster
 
[ndb_mgmd]
NodeId=1
HostName=sql-node1
 
[ndb_mgmd]
NodeId=2
HostName=sql-node2
 
[ndbd default]
NoOfReplicas=2
DataMemory=256M
IndexMemory=128M
DataDir=/usr/local/mysql/mysql-cluster
 
[ndbd]
NodeId=3
HostName=data-node1
 
[ndbd]
NodeId=4
HostName=data-node2
 
[mysqld]
[mysqld]
mkdir -p /usr/local/mysql/mysql-cluster
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
update-rc.d mysql defaults

cd /usr/local/mysql
scripts/mysql_install_db --user=mysql

Das war es im Prinzip schon, jetzt können wir das Cluster starten:

# Auf dem SQL-Node1:
ndb_mgmd -f /etc/mysql/config.ini --ndb-nodeid=1

# Auf dem SQL-Node2:
ndb_mgmd -f /etc/mysql/config.ini --ndb-nodeid=2

# Auf dem Data-Node1:
ndbd --ndb-nodeid=3

# Auf dem Data-Node2:
ndbd --ndb-nodeid=4


# Auf dem SQL-Node1 und SQL-Node2:
service mysql start

Mit dem Befehl:
ndb_mgm -e show
Lässt sich der aktuelle Status auslesen. Es sollten alle Einträge die zu sehen sind als connected angezeigt werden.

Tipp: Um den MySQL Dienst zu stoppen muss zuerst das Cluster heruntergefahren werden
ndb_mgmd -e shutdown

Hinweis: Die mysql Datenbank wird nicht im Cluster abgelegt, daher müssen auf beiden SQL-Nodes manuell dem Root-User ein Passwort verpasst werden:
mysqladmin -u root password ‚rootPa55w0rd‘

Quelle: http://blog.secaserver.com/2013/05/install-mysql-cluster-debian/
Kategorien: AllgemeinLinux

Durch das Fortsetzen der Benutzung dieser Seite, stimmst du der Benutzung von Cookies zu. Weitere Informationen

Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter.

Schließen