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/
Categories: AllgemeinLinux