MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ, mã nguồn mở và miễn phí. Nó được sử dụng để lưu trữ dữ liệu cho nhiều mục đích khác nhau, bao gồm kho dữ liệu, thương mại điện tử và các ứng dụng ghi nhật ký. MySQL Cluster là một công nghệ cung cấp khả năng mở rộng và tính khả dụng với chi phí thấp.
Trong hướng dẫn này, chúng ta sẽ sử dụng một nút chính để lưu trữ cấu hình của cụm và hai nút dữ liệu để lưu trữ dữ liệu cụm. Địa chỉ IP của mỗi nút được hiển thị bên dưới:
Sau khi tất cả các máy chủ được cập nhật, bạn có thể tiến hành bước tiếp theo.
Bạn có thể tải xuống bằng lệnh sau:
Sau khi tải xuống tệp deb, hãy cài đặt tệp này bằng lệnh sau:
Sau khi cài đặt hoàn tất, hãy tạo một thư mục để lưu trữ cấu hình cụm bằng lệnh sau:
Tiếp theo, hãy tạo một tệp cấu hình mới bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất, sau đó khởi động trình quản lý cụm bằng lệnh sau:
Bạn sẽ nhận được kết quả đầu ra sau:
Bây giờ, hãy tắt máy chủ đang chạy bằng lệnh sau:
Tiếp theo, tạo tệp dịch vụ systemd cho MySQL Cluster Manager để quản lý dịch vụ:
Thêm các dòng sau:
Lưu và đóng tệp, sau đó tải lại daemon systemd bằng lệnh sau:
Tiếp theo, khởi động Cluster Manager và cho phép nó khởi động khi khởi động lại hệ thống bằng lệnh sau:
Bây giờ bạn có thể kiểm tra trạng thái của dịch vụ bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Trước tiên, cài đặt các phụ thuộc cần thiết trên cả hai data node bằng lệnh sau:
Sau khi cài đặt xong tất cả các phụ thuộc, hãy tải xuống phiên bản mới nhất của tệp deb MySQL Data Nodes bằng lệnh sau:
Sau khi tải xuống hoàn tất, hãy cài đặt tệp đã tải xuống tệp với lệnh sau:
Theo mặc định, các nút dữ liệu lưu trữ tất cả các cấu hình trong tệp /etc/my.cnf.
Vì vậy, hãy tạo một tệp /etc/my.cnf mới trên cả hai nút dữ liệu bằng lệnh sau:
Thêm IP cụm như được hiển thị bên dưới:
Lưu và đóng tệp, sau đó tạo một thư mục dữ liệu trên cả hai nút dữ liệu:
Bây giờ, hãy khởi động các nút dữ liệu bằng lệnh sau lệnh:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, hãy tắt tiến trình ndbd đang chạy bằng lệnh sau:
Tiếp theo, hãy tạo tệp dịch vụ systemd cho ndbd trên cả hai nút dữ liệu bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp, sau đó tải lại daemon systemd bằng lệnh sau:
Tiếp theo, khởi động dịch vụ ndbd và để nó khởi động khi khởi động lại hệ thống bằng lệnh sau:
Bạn cũng có thể kiểm tra trạng thái của dịch vụ ndbd bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Trước tiên, hãy tải xuống phiên bản mới nhất của MySQL Cluster Bundle bằng lệnh sau:
Tiếp theo, giải nén tệp đã tải xuống bên trong thư mục /opt bằng lệnh sau:
Tiếp theo, hãy thay đổi thư mục thành /opt và cài đặt các phụ thuộc cần thiết bằng lệnh sau:
Tiếp theo, cài đặt tệp deb MySQL Common bằng lệnh sau:
Tiếp theo, cài đặt các gói MySQL Client bằng lệnh sau:
Nếu bạn gặp bất kỳ lỗi phụ thuộc nào, hãy chạy lệnh sau:
Tiếp theo, cài đặt gói MySQL Server bằng lệnh sau:
Trong quá trình cài đặt, bạn sẽ được nhắc đặt mật khẩu gốc MySQL.
Sau khi cài đặt máy chủ MySQL, bạn sẽ cần chỉnh sửa tệp cấu hình chính của MySQL và xác định IP cụm:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Tiếp theo, khởi động lại dịch vụ MySQL và cho phép nó khởi động khi khởi động lại hệ thống:
Bạn có thể kiểm tra trạng thái máy chủ MySQL bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Đầu tiên, hãy đăng nhập vào nút MySQL Cluster Manager và đăng nhập vào MySQL bằng lệnh sau:
Cung cấp mật khẩu gốc MySQL của bạn rồi kiểm tra thông tin cụm bằng lệnh sau:
Nếu mọi thứ ổn, bạn sẽ nhận được kết quả sau:
Bây giờ, thoát khỏi shell MySQL bằng lệnh sau:
Bây giờ, chúng ta sẽ thực hiện một thử nghiệm khác để xác nhận rằng cụm đang hoạt động bình thường.
Kết nối bảng điều khiển quản lý Cụm bằng lệnh sau:
Bạn sẽ thấy đầu ra sau:
Bây giờ, hãy chạy lệnh sau để kiểm tra tất cả dữ liệu ndoes:
Bạn sẽ nhận được kết quả đầu ra sau:
Để kiểm tra trạng thái của nút dữ liệu đầu tiên, hãy chạy lệnh sau:
Bạn sẽ thấy đầu ra sau:
Để kiểm tra trạng thái của nút dữ liệu thứ hai, hãy chạy lệnh sau:
Bạn sẽ thấy đầu ra sau:
Trong hướng dẫn này, chúng ta sẽ sử dụng một nút chính để lưu trữ cấu hình của cụm và hai nút dữ liệu để lưu trữ dữ liệu cụm. Địa chỉ IP của mỗi nút được hiển thị bên dưới:
- Nút chính hoặc nút quản lý - 104.245.33.61
- Nút dữ liệu 1 - 104.245.32.195
- Nút dữ liệu 2 - 69.87.218.169
Điều kiện tiên quyết
- Ba máy chủ chạy Debian 10, một cho nút quản lý và các nút còn lại là nút dữ liệu.
- Mật khẩu gốc được thiết lập trên mỗi máy chủ.
Bắt đầu
Đầu tiên, bạn sẽ cần cập nhật tất cả các máy chủ lên phiên bản mới nhất. Bạn có thể cập nhật tất cả bằng lệnh sau:
Mã:
apt-get update -y
Cài đặt và thiết lập MySQL Cluster Manager
Trước tiên, bạn sẽ cần cài đặt gói quản lý cụm MySQL trên nút Master. Theo mặc định, gói này không có trong kho lưu trữ mặc định của Debian 10. Vì vậy, bạn sẽ cần tải xuống từ trang web chính thức của MySQL.Bạn có thể tải xuống bằng lệnh sau:
Mã:
wget https://cdn.mysql.com//Downloads/MySQL-Cluster-8.0/mysql-cluster-community-management-server_8.0.24-1debian10_amd64.deb
Mã:
dpkg -i mysql-cluster-community-management-server_8.0.24-1debian10_amd64.deb
Mã:
mkdir /var/lib/mysql-cluster
Mã:
nano /var/lib/mysql-cluster/config.ini
Mã:
[ndbd default]NoOfReplicas=2 # Số lượng bản sao[ndb_mgmd]# Tùy chọn quy trình quản lý:hostname=104.245.33.61 #IP của Cụm MySQL Trình quản lýdatadir=/var/lib/mysql-cluster[ndbd]hostname=104.245.32.195 #IP của nút dữ liệu đầu tiênNodeId=2 # ID nút cho nút dữ liệu nàydatadir=/usr/local/mysql/data # Thư mục từ xa cho các tệp dữ liệu[ndbd]hostname=69.87.218.169 #IP của nút dữ liệu thứ haiNodeId=3 # ID nút cho nút dữ liệu nàydatadir=/usr/local/mysql/data # Thư mục từ xa cho các tệp dữ liệu[mysqld]# Tùy chọn nút SQL:hostname=104.245.33.61 #IP của Trình quản lý cụm MySQL
Mã:
ndb_mgmd -f /var/lib/mysql-cluster/config.ini
Mã:
MySQL Cluster Management Server mysql-8.0.24 ndb-8.0.242021-05-10 08:23:05 [MgmtSrvr] THÔNG TIN -- Thư mục cấu hình mặc định '/usr/mysql-cluster' không tồn tại. Đang cố gắng tạo nó...2021-05-10 08:23:05 [MgmtSrvr] THÔNG TIN -- Đã tạo thành công thư mục cấu hình
Mã:
pkill -f ndb_mgmd
Mã:
nano /etc/systemd/system/ndb_mgmd.service
Mã:
[Unit]Description=MySQL NDB Cluster Management ServerAfter=network.target auditd.service[Service]Type=forkingExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.iniExecReload=/bin/kill -HUP $MAINPIDKillMode=processRestart=on-failure[Install]WantedBy=multi-user.target
Mã:
systemctl daemon-reload
Mã:
systemctl start ndb_mgmd
systemctl enable ndb_mgmd
Mã:
systemctl status ndb_mgmd
Mã:
? ndb_mgmd.service - MySQL NDB Cluster Management Server Đã tải: đã tải (/etc/systemd/system/ndb_mgmd.service; đã tắt; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ Hai 2021-05-10 08:23:53 UTC; 6 giây trước Tiến trình: 984 ExecStart=/usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini (code=exited, status=0/SUCCESS) PID chính: 985 (ndb_mgmd) Nhiệm vụ: 12 (giới hạn: 2359) Bộ nhớ: 6,5M CGroup: /system.slice/ndb_mgmd.service ??985 /usr/sbin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini10 tháng 5 08:23:53 master systemd[1]: Đang khởi động MySQL NDB Cluster Management Server...10 tháng 5 08:23:53 master ndb_mgmd[984]: MySQL Cluster Management Server mysql-8.0.24 ndb-8.0.2410 tháng 5 08:23:53 master systemd[1]: Đã khởi động MySQL NDB Cluster Management Server.
Cài đặt và cấu hình Data Nodes
Tiếp theo, chúng ta sẽ gói data node trên các máy chủ khác và cấu hình để giao tiếp với MySQL Cluster Manager.Trước tiên, cài đặt các phụ thuộc cần thiết trên cả hai data node bằng lệnh sau:
Mã:
apt-get install libclass-methodmaker-perl -y
Mã:
wget https://cdn.mysql.com//Downloads/MySQL-Cluster-8.0/mysql-cluster-community-data-node_8.0.24-1debian10_amd64.deb
Mã:
dpkg -i mysql-cluster-community-data-node_8.0.24-1debian10_amd64.deb
Vì vậy, hãy tạo một tệp /etc/my.cnf mới trên cả hai nút dữ liệu bằng lệnh sau:
Mã:
nano /etc/my.cnf
Mã:
[mysql_cluster]# Tùy chọn cho các quy trình Cụm NDB:ndb-connectstring=104.245.33.61 #IP của Trình quản lý Cụm MySQL
Mã:
mkdir -p /usr/local/mysql/data
Mã:
ndbd
Mã:
2021-05-10 08:27:13 [ndbd] INFO -- Angel đã kết nối tới '104.245.33.61:1186'2021-05-10 08:27:13 [ndbd] INFO -- Angel đã phân bổ nodeid: 2
Mã:
pkill -f ndbd
Mã:
nano /etc/systemd/system/ndbd.service
Mã:
[Unit]Description=MySQL NDB Data Node DaemonAfter=network.target auditd.service[Service]Type=forkingExecStart=/usr/sbin/ndbdExecReload=/bin/kill -HUP $MAINPIDKillMode=processRestart=on-failure[Install]WantedBy=multi-user.target
Mã:
systemctl daemon-reload
Mã:
systemctl start ndbd
systemctl enable ndbd
Mã:
systemctl status ndbd
Mã:
? ndbd.service - MySQL NDB Data Node Daemon Đã tải: đã tải (/etc/systemd/system/ndbd.service; đã tắt; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ Hai 2021-05-10 08:28:28 UTC; 12 giây trước Tiến trình: 740 ExecStart=/usr/sbin/ndbd (code=exited, status=0/SUCCESS) PID chính: 741 (ndbd) Nhiệm vụ: 46 (giới hạn: 2359) Bộ nhớ: 827,1M CGroup: /system.slice/ndbd.service ??741 /usr/sbin/ndbd ??742 /usr/sbin/ndbd10 tháng 5 08:28:28 data1 systemd[1]: Đang khởi động MySQL NDB Data Node Daemon...10 tháng 5 08:28:28 data1 ndbd[740]: 10-05-2021 08:28:28 [ndbd] THÔNG TIN -- Angel đã kết nối tới '104.245.33.61:1186'10 tháng 5 08:28:28 data1 ndbd[740]: 2021-05-10 08:28:28 [ndbd] THÔNG TIN -- Angel đã phân bổ nodeid: 210 tháng 5 08:28:28 data1 systemd[1]: Đã khởi động MySQL NDB Data Node Daemon.
Cài đặt và cấu hình MySQL Server
Tiếp theo, chúng ta sẽ tải xuống và cài đặt các gói MySQL Server và Client trên MySQL Cluster Manager Node.Trước tiên, hãy tải xuống phiên bản mới nhất của MySQL Cluster Bundle bằng lệnh sau:
Mã:
wget https://cdn.mysql.com/Downloads/MySQL-Cluster-8.0/mysql-cluster_8.0.24-1debian10_amd64.deb-bundle.tar
Mã:
tar -xvf mysql-cluster_8.0.24-1debian10_amd64.deb-bundle.tar -C /opt
Mã:
cd /opt
apt-get install libaio1 libmecab2 libnuma1 psmisc -y
Mã:
dpkg -i mysql-common*
Mã:
dpkg -i mysql-cluster-community-client_8.0.24-1debian10_amd64.deb mysql-cluster-community-client-core_8.0.24-1debian10_amd64.deb mysql-cluster-community-client-plugins_8.0.24-1debian10_amd64.deb
dpkg -i mysql-client_8.0.24-1debian10_amd64.deb
dpkg -i mysql-cluster-community-server*
Mã:
apt-get install -f
Mã:
dpkg -i mysql-server_8.0.24-1debian10_amd64.deb
Sau khi cài đặt máy chủ MySQL, bạn sẽ cần chỉnh sửa tệp cấu hình chính của MySQL và xác định IP cụm:
Mã:
nano /etc/mysql/my.cnf
Mã:
[mysqld]# Tùy chọn cho quy trình mysqld:ndbcluster # chạy lưu trữ NDB engine[mysql_cluster]# Tùy chọn cho quy trình NDB Cluster:ndb-connectstring=104.245.33.61 #IP của MySQL Cluster Manager
Mã:
systemctl restart mysql
systemctl enable mysql
Mã:
systemctl status mysql
Mã:
? mysql.service - MySQL Cluster Community Server Đã tải: đã tải (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ Hai 2021-05-10 08:35:04 UTC; 7 giây trước Tài liệu: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Tiến trình: 1950 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS) PID chính: 1985 (mysqld) Trạng thái: "Máy chủ đang hoạt động" Nhiệm vụ: 47 (giới hạn: 2359) Bộ nhớ: 372,0M CGroup: /system.slice/mysql.service ??1985 /usr/sbin/mysqld10 tháng 5 08:35:01 master systemd[1]: Đang khởi động MySQL Cluster Community Server...10 tháng 5 08:35:04 master systemd[1]: Đã khởi động MySQL Cluster Community Server.
Kiểm tra MySQL Cluster
Bây giờ, chúng ta đã cài đặt và cấu hình MySQL Cluster ba nút thành công. Tiếp theo, bạn sẽ cần xác minh xem nó có hoạt động hay không.Đầu tiên, hãy đăng nhập vào nút MySQL Cluster Manager và đăng nhập vào MySQL bằng lệnh sau:
Mã:
mysql -u root -p
Mã:
mysql> SHOW ENGINE NDB STATUS \G
Mã:
****************************** 1. hàng ****************************** Loại: ndbclus Tên: kết nốiTrạng thái: cluster_node_id=4, connected_host=104.245.33.61, connected_port=1186, number_of_data_nodes=2, number_of_ready_data_nodes=2, connect_count=0****************************** 2. hàng ****************************** Loại: ndbclus Tên: NdbTransactionTrạng thái: created=2, free=2, sizeof=392*************************** 3. hàng ****************************** Loại: ndbclus Tên: NdbOperationTrạng thái: created=4, free=4, sizeof=944*************************** 4. hàng ****************************** Loại: ndbclus Tên: NdbIndexScanOperationTrạng thái: created=0, free=0, sizeof=1152****************************** 5. hàng ****************************** Loại: ndbclus Tên: NdbIndexOperationTrạng thái: created=0, free=0, sizeof=952****************************** 6. hàng ****************************** Loại: ndbclus Tên: NdbRecAttrTrạng thái: created=0, free=0, sizeof=88*************************** 7. hàng ****************************** Loại: ndbclus Tên: NdbApiSignalTrạng thái: created=16, free=16, sizeof=144*************************** 8. hàng ****************************** Loại: ndbclus Tên: NdbLabelTrạng thái: created=0, free=0, sizeof=200****************************** 9. hàng ****************************** Loại: ndbclus Tên: NdbBranchTrạng thái: created=0, free=0, sizeof=32*************************** 10. hàng ****************************** Loại: ndbclus Tên: NdbSubroutineTrạng thái: created=0, free=0, sizeof=72*************************** 11. hàng ****************************** Loại: ndbclus Tên: NdbCallTrạng thái: created=0, free=0, sizeof=24*************************** 12. hàng ****************************** Loại: ndbclus Tên: NdbBlobTrạng thái: created=0, free=0, sizeof=592*************************** 13. hàng ****************************** Loại: ndbclus Tên: NdbReceiverTrạng thái: created=0, free=0, sizeof=128****************************** 14. hàng ****************************** Loại: ndbclus Tên: NdbLockHandleTrạng thái: created=0, free=0, sizeof=48*************************** 15. hàng ****************************** Loại: ndbclus Tên: binlogTrạng thái: latest_epoch=897648164875, latest_trans_epoch=820338753551, latest_received_binlog_epoch=0, latest_handled_binlog_epoch=0, latest_applied_binlog_epoch=015 hàng trong tập hợp (0,00 giây)
Mã:
mysql> exit
Kết nối bảng điều khiển quản lý Cụm bằng lệnh sau:
Mã:
ndb_mgm
Mã:
-- NDB Cluster -- Management Client --ndb_mgm>
Mã:
ndb_mgm> HIỂN THỊ
Mã:
Đã kết nối với Máy chủ quản lý tại: 104.245.33.61:1186Cấu hình cụm---------------------[ndbd(NDB)] 2 nútid=2 @104.245.32.195 (mysql-8.0.24 ndb-8.0.24, Nodegroup: 0, *)id=3 @69.87.218.169 (mysql-8.0.24 ndb-8.0.24, Nodegroup: 0)[ndb_mgmd(MGM)] 1 nútid=1 @104.245.33.61 (mysql-8.0.24 ndb-8.0.24)[mysqld(API)] 1 nútid=4 @104.245.33.61 (mysql-8.0.24 ndb-8.0.24)
Mã:
ndb_mgm> 2 STATUS
Mã:
Node 2: started (mysql-8.0.24 ndb-8.0.24)
Mã:
ndb_mgm> 3 STATUS
Mã:
Node 3: started (mysql-8.0.24 ndb-8.0.24)