Difference between revisions of "How to install MYSQL NDB cluster"
Line 157: | Line 157: | ||
==Data node== | ==Data node== | ||
+ | Create a file on you data nodes and copy and paste the script below. | ||
+ | sudo vi data_node.sh | ||
− | sudo | + | #!/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 | ||
+ | cd xvf mysql-cluster-gpl-7.6.7-linux-glibc2.12-x86_64/bin | ||
+ | sudo cp ndbd /usr/local/bin | ||
+ | sudo cp ndbmtd /usr/local/bin | ||
+ | cd /usr/local/bin | ||
+ | sudo chmod 755 ndb* | ||
==SQL node== | ==SQL node== | ||
sudo vi sql_node.sh | sudo vi sql_node.sh |
Revision as of 13:12, 26 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
sudo vi mgmt_node.sh
#!/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" sleep 3 sudo mkdir /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 cd 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" sleep 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
Make the script executable
sudo chmod +x mgmt_node.sh
Run the script
sudo ./mgmt_node.sh
Set back and relax
AFter the scrpt complete type command
ndb_mgm
The output should look the same as below
-- NDB Cluster -- Management Client -- ndb_mgm>
At the prompt, type "show" and you should see
ndb_mgm> show Connected to Management Server at: localhost:1186 Cluster Configuration --------------------- [ndbd(NDB)] 2 node(s) id=2 (not connected, accepting connect from db2005.dfw.ppnet) id=3 (not connected, accepting connect from db2006.dfw.ppnet) [ndb_mgmd(MGM)] 1 node(s) id=1 @10.192.16.61 (mysql-5.7.23 ndb-7.6.7) [mysqld(API)] 1 node(s) id=4 (not connected, accepting connect from db2004.dfw.ppnet)
We can see that the management node is up and running and the data nodes and SQL node are stay down. In the next session we are going to setup the data nodes
Data node
Create a file on you data nodes and copy and paste the script below.
sudo vi data_node.sh
#!/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 cd xvf mysql-cluster-gpl-7.6.7-linux-glibc2.12-x86_64/bin sudo cp ndbd /usr/local/bin sudo cp ndbmtd /usr/local/bin cd /usr/local/bin sudo chmod 755 ndb*
SQL node
sudo vi sql_node.sh