Difference between revisions of "How to install MYSQL NDB cluster"
Line 92: | Line 92: | ||
slepp 3 | slepp 3 | ||
cd /var/lib/mysql-cluster/ | cd /var/lib/mysql-cluster/ | ||
+ | if [ ! -f "$file" ] ; then | ||
+ | # if not create the file | ||
+ | cat > $file << EOF | ||
+ | [ndb_mgmd] | ||
+ | # Management process options: | ||
+ | hostname=db2008.dfw.ppnet # Hostname of the manager | ||
+ | datadir=/var/lib/mysql-cluster # Directory for the log files | ||
+ | [ndbd] | ||
+ | hostname=db2005.dfw.ppnet # Hostname of the first data node | ||
+ | datadir=/usr/local/mysql/data # Remote directory for the data files | ||
+ | [ndbd] | ||
+ | hostname=db2006.dfw.ppnet # Hostname of the second data node | ||
+ | datadir=/usr/local/mysql/data # Remote directory for the data files | ||
+ | [mysqld] | ||
+ | # SQL node options: | ||
+ | hostname=db2004.dfw.ppnet # Hostname of the MySQL server/client node | ||
+ | EOF | ||
+ | else echo "$file existe" | ||
+ | fi | ||
+ | #Start the manegement node | ||
+ | echo"starting the manegement node" | ||
+ | sleep 3 | ||
+ | sudo ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/ | ||
+ | |||
+ | #make the process to start a boot | ||
+ | echo"start ndb_mgmd at boot" | ||
+ | slepp 3 | ||
+ | sudo echo "ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/" > /etc/init.d/ndb_mgmd | ||
+ | sudo chmod 755 /etc/init.d/ndb_mgmd | ||
==Data node== | ==Data node== | ||
==SQL node== | ==SQL node== |
Revision as of 19:26, 25 August 2018
In the tutorial we will install MYSQL Network Database cluster (NDB) using 4 nodes.
Prerequisites
To complete this tutorial, you'll need the following:
- 1 management node
- 2 data nodes
- 1 SQL node
- mysql-cluster-gpl-7.6.7-linux-glibc2.12-x86_64
Naming
db2004.dfw.ppnet = SQL node
db2005.dfw.ppnet = 1st data node
db2006.dfw.ppnet= 2nd data node
db2008.dfw.ppnet= management node
Hardware/software requirements
I am running this in a VM environment. All nodes have 1Gb of RAM and 20GB of disk. To run this in a productions environment please refer to the MSQL NDB cluster documentation.
free -h total used free shared buff/cache available Mem: 996M 254M 167M 10M 574M 578M Swap: 1.0G 5.4M 1.0G
df -h Filesystem Size Used Avail Use% Mounted on udev 488M 0 488M 0% /dev tmpfs 100M 11M 90M 11% /run /dev/sda1 19G 9.0G 8.8G 51% / tmpfs 499M 0 499M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 499M 0 499M 0% /sys/fs/cgroup tmpfs 100M 0 100M 0% /run/user/2001
All 4 nodes are running Debian stretch
lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 9.5 (stretch) Release: 9.5 Codename: stretch
Networking
IF you want to use the node FQDN you need to have a DNS server or update the /etc/hosts file; othewise, you can you the node IP address. For this tutorial We are gong to use the node FQDN.
- SQL node
127.0.0.1 localhost 10.192.16.62 db2004.dfw.ppnet db2004
- 1st data node
127.0.0.1 localhost 10.192.16.63 db2005.dfw.ppnet db2005
- 2nd data node
127.0.0.1 localhost 10.192.16.64 db2006.dfw.ppnet db2006
- management node
127.0.0.1 localhost 10.192.16.61 db2008.dfw.ppnet db2008
Installation
login to each node and copy the scrip for each node to the appropriate node
Management node
#!/bin/bash file="config.ini" #creae a folder called files under /tmp/ echo " Creating folder" sleep 3 cd /tmp/ sudo mkdir files cd files #download the ndb_cluser software echo "Download ndb_clutser software" sleep 3 sudo wget https://dev.mysql.com/get/Downloads/MySQL-Cluster-7.6/mysql-cluster-gpl-7.6.7-linux-glibc2.12-x86_64.tar.gz echo "unzip the tar file " sleep 3 sudo tar -xvf mysql-cluster-gpl-7.6.7-linux-glibc2.12-x86_64.tar.gz #copy files" echo "copy ndb and ndb_mgmd to /usr/local/bin" sleep 3 cd mysql-cluster-gpl-7.6.7-linux-glibc2.12-x86_64 cd bin sudo cp ndb_mgm /usr/bin/ sudo cp ndb_mgmd /usr/bin/ cd /usr/bin/ sudo chmod 755 ndb_mg* #create the configuration file echo " Create /var/lib/mysql-cluster/config.ini" slepp 3 cd /var/lib/mysql-cluster/ if [ ! -f "$file" ] ; then # if not create the file cat > $file << EOF [ndb_mgmd] # Management process options: hostname=db2008.dfw.ppnet # Hostname of the manager datadir=/var/lib/mysql-cluster # Directory for the log files [ndbd] hostname=db2005.dfw.ppnet # Hostname of the first data node datadir=/usr/local/mysql/data # Remote directory for the data files [ndbd] hostname=db2006.dfw.ppnet # Hostname of the second data node datadir=/usr/local/mysql/data # Remote directory for the data files [mysqld] # SQL node options: hostname=db2004.dfw.ppnet # Hostname of the MySQL server/client node EOF else echo "$file existe" fi #Start the manegement node echo"starting the manegement node" sleep 3 sudo ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/
- make the process to start a boot
echo"start ndb_mgmd at boot" slepp 3 sudo echo "ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/" > /etc/init.d/ndb_mgmd sudo chmod 755 /etc/init.d/ndb_mgmd