Cách cài đặt MySQL Cluster trên Ubuntu 16.04

theanh

Administrator
Nhân viên
MySQL Cluster là công nghệ cung cấp tính khả dụng cao cho Cơ sở dữ liệu MySQL. Nó sử dụng NDB (Network DataBase) hoặc NDBCLUSTER làm công cụ lưu trữ cơ sở dữ liệu. MySQL Cluster được thiết kế theo kiến trúc ACID đa chủ không có điểm lỗi đơn, sử dụng phân mảnh tự động (phân vùng) để mở rộng quy mô các quy trình đọc và ghi.



Để triển khai MySQL Cluster, chúng ta cần 3 loại nút khác nhau:
  • Nút quản lý (ndb_mgmd)Được sử dụng để giám sát và cấu hình cụm.
[*] Nút dữ liệu (ndbd)
  • Các nút này được sử dụng để lưu trữ dữ liệu mà chúng cung cấp phân mảnh tự động và có thể xử lý sao chép.
[*] Nút SQL (mysqld)
  • Giao diện MySQL Server để kết nối với tất cả các nút.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt 'MySQL Cluster' trên Ubuntu 16.04 LTS (Xenial Xerus).



Điều kiện tiên quyết
  • 4 nút với máy chủ Ubuntu 16.04
  1. 192.168.1.11 management-node
  2. 192.168.1.12 data-node1
  3. 192.168.1.13 data-node2
  4. 192.168.1.14 sql-node
  • Quyền root trên các nút.

Bước 1 - Cài đặt và cấu hình nút quản lý​

Trong bước này, chúng tôi sẽ cài đặt nút quản lý cho cụm của mình với địa chỉ IP là 192.168.1.11. Chúng tôi cài đặt phần mềm cụm MySQL và cấu hình nó làm nút quản lý cho cụm.

Đăng nhập vào nút quản lý bằng ssh:
Mã:
ssh [emailprotected]
NHẬP MẬT KHẨU CỦA BẠN
A. Cài đặt MySQL Cluster Management Node

Mở trang web cụm MySQL tại đây và chọn tùy chọn 'Linux-generic' và tải xuống gói 64 bit bằng cách nhấp vào nút 'Tải xuống'.

Tải xuống gói cụm MySQL bằng wget và giải nén nó.
Mã:
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
Đổi tên thư mục thành mysql:
Mã:
mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/
Vào thư mục mysql và sao chép 2 tệp nhị phân cho lệnh quản lý cụm 'ndb_mgmdndb_mgm' vào thư mục '/usr/local/bin/', sau đó thực thi chúng bằng lệnh chmod.
Mã:
cd ~/mysql/
cp bin/ndb_mgm* /usr/local/bin/
chmod +x /usr/local/bin/ndb_mgm*
B. Cấu hình nút quản lý cụm MySQL

Cấu hình nút quản lý bằng cách tạo thư mục mới 'mysql-cluster' cho các tệp cấu hình trong thư mục '/var/lib/'.

Tạo thư mục 'mysql-cluster' và tạo cấu hình mới 'config.ini' trong thư mục:
Mã:
mkdir -p /var/lib/mysql-cluster/
vim /var/lib/mysql-cluster/config.ini
Dán cấu hình bên dưới:
Mã:
[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
 
[mysqld default]
 
[ndb_mgmd default]
 
[tcp default]
 
# Kiểm soát / Quản lý cụm node
[ndb_mgmd]
hostname=192.168.1.11
 
# Data Node 1
[ndbd]
hostname=192.168.1.12
DataDir= /var/lib/mysql-cluster
 
# Data Node 1
[ndbd]
HostName=192.168.1.13
DataDir=/var/lib/mysql-cluster
 
# SQL Node
[mysqld]
hostname=192.168.1.14
 
# Nếu bạn muốn thêm SQL Node mới
[mysqld]
Hãy thay đổi địa chỉ IP của ndb_mgmd để quản lý, ndbd để quản lý nút dữ liệu và mysqld để quản lý nút sql sao cho phù hợp với thiết lập của bạn.

Lưu tệp và thoát.

Tiếp theo, bắt đầu quy trình nút quản lý bằng lệnh bên dưới:
Mã:
ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/
Làm cho nó được bắt đầu khi khởi động bằng cách thêm lệnh vào tệp '/etc/rc.local':
Mã:
echo 'ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/' >> /etc/rc.local
Nếu bạn thấy kết quả:
Mã:
MySQL Cluster Management Server mysql-5.6.31 ndb-7.4.12
Thì tiến trình nút quản lý đang chạy.

Kiểm tra nút quản lý bằng lệnh khác:
Mã:
# Kiểm tra cổng 1186 được ndb_mgmd sử dụng
netstat -plntu 
 
# Kiểm tra xem nút quản lý đã sẵn sàng chưa
ndb_mgm
show



Bước 2 - Cài đặt và cấu hình nút dữ liệu​

Trong bước này, chúng ta sẽ cài đặt phần mềm cụm MySQL và cấu hình nó như một nút dữ liệu. Chúng ta sẽ sử dụng 2 máy chủ Ubuntu 16.04 làm nút dữ liệu: data-node1 có địa chỉ IP là 192.168.1.12 và data-node2 có địa chỉ IP là 192.168.1.13.

Đăng nhập vào máy chủ data-node1 bằng ssh:
Mã:
ssh [emailprotected]
A. Cài đặt cụm MySQL trên nút dữ liệu

Trước khi cài đặt phần mềm cụm MySQL, chúng ta cần cài đặt gói mới 'libaio1' và tạo người dùng và nhóm mới mysql. Chạy lệnh dưới đây với tư cách là root:
Mã:
apt-get install libaio1
groupadd mysql
useradd -g mysql mysql
Bây giờ hãy tải xuống gói cụm MySQL 'Linux-Generic', giải nén và đổi tên thư mục thành mysql.
Mã:
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/
Di chuyển Thư mục 'mysql' đến '/usr/local/' và đi đến thư mục đó.
Mã:
mv mysql /usr/local/
cd /usr/local/mysql/
Chạy tập lệnh để tạo cơ sở dữ liệu hệ thống:
Mã:
./scripts/mysql_install_db --user=mysql
Nếu không có lỗi, hãy sao chép tệp dịch vụ mysql vào thư mục '/etc/init.d' và thêm tập lệnh khởi động mysql để chạy khi khởi động.
Mã:
cp support-files/mysql.server /etc/init.d/mysql
systemctl enable mysql
Tiếp theo, di chuyển tất cả các lệnh nhị phân mysql đến thư mục '/usr/local/bin' và tạo một liên kết tượng trưng mới.
Mã:
mv bin/* /usr/local/bin/
rm -rf bin/
ln -s /usr/local/bin /usr/local/mysql/
Thay đổi chủ sở hữu của thư mục mysql thành người dùng root và nhóm mysql, và thay đổi thư mục dữ liệu thành mysql làm chủ sở hữu.
Mã:
chown -R root:mysql .
chown -R mysql data
B. Cấu hình MySQL Cluster Data Node

Tạo tệp cấu hình mysql mới 'my.cnf' bằng vim:
Mã:
vim /etc/my.cnf
Dán cấu hình bên dưới:
Mã:
# MySQL Config
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
 
# Chạy công cụ lưu trữ ndb
ndbcluster
# Nút quản lý địa chỉ IP
ndb-connectstring=192.168.1.11
 
[mysql_cluster]
# Nút quản lý địa chỉ IP
ndb-connectstring=192.168.1.11
 
# MySQL Pid và Nhật ký
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Lưu và thoát.

Tạo một thư mục mới cho các nút dữ liệu và thay đổi quyền sở hữu thành người dùng mysql.
Mã:
mkdir -p /var/lib/mysql-cluster/
chown -R mysql /var/lib/mysql-cluster
C. Khởi động MySQL trên Nút dữ liệu

Khởi động dịch vụ mysql bằng lệnh bên dưới:
Mã:
ndbd --initial
systemctl start mysql
Đảm bảo không có lỗi và kết quả như bên dưới (data-node2):



MySQL trên nút dữ liệu đã được khởi động. Bây giờ bạn có thể cấu hình mật khẩu MySQL bằng lệnh:
Mã:
mysql_secure_installation
hoặc truy cập vào shell MySQL.
Mã:
mysql -u root -p
LƯU Ý:
Thực hiện lại bước này trên địa chỉ IP của máy chủ 'data-node2' là 192.168.1.13.


Bước 3 - Cài đặt và cấu hình SQL Node​

Trong bước này, chúng ta sẽ cài đặt phần mềm MySQL Cluster và cấu hình nó thành SQL Node. Node này được sử dụng để truy cập vào cơ sở dữ liệu trên các nút dữ liệu. Quá trình cài đặt giống như nút dữ liệu, nhưng chúng ta không phải chạy dịch vụ ndbd trong SQL Node.

Đăng nhập vào SQL Node bằng ssh:
Mã:
ssh [emailprotected]
A. Cài đặt MySQL Cluster trên SQL Node

Cài đặt gói libaio1 và tạo người dùng và nhóm mới mysql:
Mã:
apt-get install libaio1
groupadd mysql
useradd -g mysql mysql
Tải xuống gói mysql cluster từ trang web, giải nén và đổi tên:
Mã:
http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/
Di chuyển thư mục mysql:
Mã:
mv mysql /usr/local/
cd /usr/local/mysql/
Chạy tập lệnh mysql_install_db:
Mã:
./scripts/mysql_install_db --user=mysql
Sao chép tệp dịch vụ và thêm tệp đó để bắt đầu khi khởi động:
Mã:
cp support-files/mysql.server /etc/init.d/mysql
systemctl enable mysql
Di chuyển tất cả các tệp nhị phân mysql vào thư mục '/usr/local/bin':
Mã:
mv bin/* /usr/local/bin/
rm -rf bin/
ln -s /usr/local/bin /usr/local/mysql/
Thay đổi chủ sở hữu của tất cả các tệp và thư mục:
Mã:
chown -R root:mysql .
chown -R mysql data
B. Cấu hình MySQL Cluster SQL Node

Tạo tệp cấu hình my.cnf mới bằng vim:
Mã:
vim /etc/my.cnf
Dán cấu hình bên dưới:
Mã:
# MySQL Config
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql
 
# Chạy công cụ lưu trữ ndb
ndbcluster
# Nút quản lý địa chỉ IP
ndb-connectstring=192.168.1.11
 
[mysql_cluster]
# Nút quản lý địa chỉ IP
ndb-connectstring=192.168.1.11
 
# MySQL Pid và Nhật ký
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Lưu và thoát.

C. Khởi động SQL Node

Khởi động SQL node bằng cách khởi động dịch vụ mysql với lệnh systemctl:
Mã:
systemctl start mysql
SQL Node đã được khởi động, bây giờ bạn có thể cấu hình mật khẩu cho MySQL.
Mã:
mysql_secure_installation

Bước 4 - Kiểm tra​

Kiểm tra để tạo cơ sở dữ liệu mới từ SQL node.
Mã:
mysql -u root -p
TYPE PASSWORD
 
 
create database nanana;


Kiểm tra xem cơ sở dữ liệu đã được sao chép trên máy chủ data-node chưa.
Và khi anode tắt, một node khác sẽ xử lý kết nối từ SQL node.
Mã:
mysql -u root -p
TYPE PASSWORD
 
 
show cơ sở dữ liệu;


Kiểm tra trạng thái cụm từ nút quản lý:
Mã:
ndb_mgm
show



Bước 5 - Mẹo bổ sung​

Thực hiện khởi động lại và tắt cụm an toàn.

Đi tới nút quản lý cụm và nhập lệnh bên dưới để tắt cụm:
Mã:
ndb_mgm
shutdown
Lệnh này sẽ tắt tất cả các dịch vụ ndb trên các nút dữ liệu.

Nếu bạn muốn khởi động lại cụm, bạn có thể chạy lệnh bên dưới trên nút quản lý:

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/

Và chạy lệnh bên dưới trên tất cả các nút dữ liệu:
Mã:
ndbd
systemctl start mysql
Sau đó, khởi động dịch vụ mysql trên các nút SQL:
Mã:
systemctl start mysql
Bây giờ MySQL Cluster của bạn đang chạy lại.


Tham khảo​

 
Back
Bên trên