MySQL Cluster 7.4 with Ubuntu 14.04
참고
시스템 구성
Node | Network | Notes |
---|---|---|
management1 | 192.168.56.101 | mgm1 |
management2 | 192.168.56.102 | mgm2 |
sql1 | 192.168.56.105 | api1 |
sql2 | 192.168.56.106 | api2 |
data1 | 192.168.56.161 | ndb1 |
data2 | 192.168.56.162 | ndb2 |
Installation
Base
문서에 나온 대로 한 번 하다가 말아먹었다. 그냥 모든 시스템을 동일하게 구성하고 복제본을 여러개 만들고 각각의 설정 파일들만 따로 만들어야겠다.
VirtualBox Guest Additions
이건 뭐 별 상관은 없지만…
$ sudo apt-get -y install make gcc ... $ sudo mount -t iso9660 /dev/cdrom /media/cdrom ... $ cd /media/cdrom $ sudo ./VBoxLinuxAdditions.run ... $ sudo shutdown -r now
재기동이 되면 자기 자신을 vboxsf
그룹에 추가한 후 다시 로그인 하자.
$ sudo usermod -a -G vboxsf username $ logout ... $ groups ... ... ... ... ... ... ... vboxsf $
Host-only Adapter
NAT 외에 Host-only Adapter를 하나 더 추가하여 VM 들 끼리 통신이 가능하게 한다.
$ cat /etc/network/interface ... auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp # Host-only Adapter auto eth1 iface eth1 inet static address 192.168.56.101 netmask 255.255.255.0 network 192.168.56.0 broadcast 192.168.56.255 $
MySQL Cluster
MySQL 을 위한 계정을 하나 만들자.
$ sudo adduser --system --no-create-home --group mysql ... $
내려 받은 mysql-cluster-gpl-7.4...tar.gz
파일을 /usr/local
에 풀고 심볼릭 링크를 하나 만들자.
$ pwd /usr/local $ ls -1 ... mysql-cluster-gpl-7.4...tar.gz ... $ sudo tar xzf mysql-cluster-gpl-7.4...tar.gz $ ls -1F ... mysql-cluster-gpl-7.4...-linux-glibc2.5-x86_64/ mysql-cluster-gpl-7.4...tar.gz ... $ sudo ln -s mysql-cluster-gpl-7.4...-linux-glibc2.5-x86_64/ mysql $ ls -l ... .................................. mysql -> mysql-cluster-gpl-7.4... mysql-cluster-gpl-7.4.../ ... $ sudo rm mysql-cluster-gpl-7.4...tar.gz
아래와 같이 권한을 부여하자.
$ cd /usr/local/mysql $ sudo chown -R root . $ sudo chown -R mysql data $ sudo chgrp -R mysql . $
이제 각각의 노드를 복제하고 다음과 같은 작업들을 수행한다.
SQL nodes
db를 설치하자.
$ sudo apt-get -y install libaio1 ... $ cd /usr/local/mysql $ sudo ./scripts/mysql_install_db --user=mysql ... $
init script를 등록하자.
$ cd /etc/init.d $ sudo ln -s /usr/local/mysql/support-files/mysql.server $ sudo update-rc.d mysql.server defaults
Data nodes
실행파일들을 복사하자.
$ cd /usr/local/bin $ sudo ln -s /usr/local/mysql/bin/ndbd $ sudo ln -s /usr/local/mysql/bin/ndbmtd
Management nodes
실행파일들을 복사하자.
$ cd /usr/local/bin $ sudo ln -s /usr/local/mysql/bin/ndb_mgm $ sudo ln -s /usr/local/mysql/bin/ndb_mgmd
Configuration
SQL/Data nodes
SQL node 와 data node 에 다음과 같이 설정파일을 준비하자.
$ cd /etc $ sudo emacs my.cnf ... $ cat my.cnf [mysqld] ndbcluster [mysql_cluster] ndb-connectstring="192.169.56.101,192.168.56.102" $
Management nodes
기본 위치가 /usr/local/mysql/mysql-cluster
인 듯 하다.
$ cd /usr/local/mysql $ sudo mkdir mysql-cluster $ sudo chown mysql:mysql mysql-cluster $
다음과 같이 설정 파일을 준비하자.
$ cat /usr/local/mysql/config.ini [ndbd default] NoOfReplicas=1 #DataMemory=80M #IndexMemory=18M [tcp default] #portnumber=2202 [ndb_mgmd] hostname=192.168.56.101 datadir=/usr/local/mysql/data [ndbd] hostname=192.168.56.161 datadir=/usr/local/mysql/data [mysqld] hostname=192.168.56.105 $
Start
Management nodes
$ sudo -u mysql ndb_mgmd -f /usr/local/mysql/config.ini $
Data nodes
$ sudo -u mysql ndbd ... $
SQL nodes
$ sudo /etc/init.d/mysql.server start .. $