GNU/Linux >> Belajar Linux >  >> Cent OS

Cara Instal dan Konfigurasi MySQL Cluster di CentOS 7

MySQL Cluster dirancang untuk menyediakan database yang kompatibel dengan MySQL dengan ketersediaan tinggi dan latensi rendah. Teknologi MySQL Cluster diimplementasikan melalui NDB (Network DataBase) dan mesin penyimpanan NDBCLUSTER dan menyediakan clustering dan auto-sharding untuk sistem database MySQL. Dalam arsitektur shared-nothing, setiap node memiliki memori dan disk sendiri, penggunaan penyimpanan bersama seperti NFS, SAN tidak direkomendasikan dan didukung.

Untuk mengimplementasikan MySQL Cluster, kita harus menginstal tiga jenis node. Setiap jenis node akan diinstal di servernya sendiri. Komponennya adalah:

1. Node Manajemen - NDB_MGMD/MGM
    Server pengelolaan Cluster digunakan untuk mengelola node cluster lainnya. Kita dapat membuat dan mengkonfigurasi node baru, restart, menghapus, atau backup node pada cluster dari node manajemen.

2. Node Data - NDBD/NDB
    Ini adalah lapisan tempat terjadinya proses sinkronisasi dan replikasi data antar node.

3. SQL Nodes - MySQLD/API
    Server antarmuka yang digunakan oleh aplikasi untuk terhubung ke cluster database.

Dalam tutorial ini, saya akan memandu Anda melalui instalasi dan konfigurasi MySQL Cluster dengan centOS 7. Kami akan mengkonfigurasi node manajemen, dua node data, dan dua node SQL.

Prasyarat

  • OSnya adalah CentOS 7 - 64bit.
  • 5 Server CentOS atau mesin virtual. Saya akan menggunakan nama host dan alamat IP seperti yang ditunjukkan di bawah ini:
    • Simpul Manajemen
      db1 =192.168.1.120
    • Node Data
      db2 =192.168.1.121
      db3 =192.168.1.122
    • Node SQL
      db4 =192.168.1.123
      db5 =192.168.1.124

Langkah 1 - Siapkan Simpul Manajemen

Langkah pertama adalah membuat "Management Node" dengan CentOS 7 db1 dan IP 192.168.1.120 . Pastikan Anda login ke server db1 sebagai pengguna root.

A. Unduh perangkat lunak MySQL Cluster

Saya akan mengunduhnya dari situs MySQL dengan wget. Saya menggunakan "Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit), RPM Bundle " di sini yang kompatibel dengan CentOS 7. Kemudian ekstrak file tar.

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

B. Instal dan Hapus Paket

Sebelum Anda menginstal paket rpm untuk MySQL Cluster, Anda perlu menginstal perl-Data-Dumper yang dibutuhkan oleh server MySQL-Cluster. Dan Anda harus menghapus mariadb-libs sebelum kita dapat menginstal MySQL Cluster.

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

C. Instal MySQL Cluster

Instal paket MySQL Cluster dengan perintah rpm ini:

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

Pastikan tidak ada kesalahan.

D. Konfigurasi MySQL Cluster

Buat direktori baru untuk file konfigurasi. Saya akan menggunakan direktori "/var/lib/mysql-cluster".

mkdir -p /var/lib/mysql-cluster

Kemudian buat file konfigurasi baru untuk manajemen cluster bernama "config.ini " di direktori mysql-cluster.

cd /var/lib/mysql-cluster
vi config.ini

Rekatkan konfigurasi di bawah ini:

[ndb_mgmd default]
# Directory for MGM node log files
DataDir=/var/lib/mysql-cluster
 
[ndb_mgmd]
#Management Node db1
HostName=192.168.1.120
 
[ndbd default]
NoOfReplicas=2      # Number of replicas
DataMemory=256M     # Memory allocate for data storage
IndexMemory=128M    # Memory allocate for index storage
#Directory for Data Node
DataDir=/var/lib/mysql-cluster
 
[ndbd]
#Data Node db2
HostName=192.168.1.121
 
[ndbd]
#Data Node db3
HostName=192.168.1.122
 
[mysqld]
#SQL Node db4
HostName=192.168.1.123
 
[mysqld]
#SQL Node db5
HostName=192.168.1.124

Simpan file dan keluar.

E. Mulai Node Manajemen

Selanjutnya mulai node manajemen dengan perintah di bawah ini:

ndb_mgmd --config-file=/var/lib/mysql-cluster/config.ini

Hasilnya harus seperti ini:

MySQL Cluster Management Server mysql-5.6.28 ndb-7.4.10
2016-03-22 19:26:08 [MgmtSrvr] INFO     -- The default config directory '/usr/mysql-cluster' does not exist. Trying to create it...
2016-03-22 19:26:08 [MgmtSrvr] INFO     -- Successfully created config directory

Node manajemen dimulai, sekarang Anda dapat menggunakan perintah "ndb_mgm" untuk memantau node:

ndb_mgm
show

Anda dapat melihat node manajemen telah dimulai dengan:mysql-6.6 dan ndb-7.4.

Langkah 2 - Siapkan Node Data Cluster MySQL

Kami akan menggunakan 2 server CentOS untuk Node Data.

  1. db2 =192.168.1.121
  2. db3 =192.168.1.122

A. Masuk sebagai pengguna root dan unduh perangkat lunak MySQL Cluster

Masuk ke server db2 dengan ssh:

ssh [email protected]

Kemudian unduh paket MySQL Cluster dan ekstrak:

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

B. Instal dan Hapus Paket

Instal perl-Data-Dumper dan hapus mariadb-libs:

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

C. Instal MySQL Cluster

Sekarang kita dapat menginstal paket MySQL Cluster untuk Data Nodes dengan perintah rpm ini:

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

Pastikan tidak ada kesalahan.

D. Konfigurasikan Node Data

Buat file konfigurasi baru di direktori /etc dengan editor vi:

vi /etc/my.cnf

Tempelkan konfigurasi di bawah ini:

[mysqld]
ndbcluster
ndb-connectstring=192.168.1.120     # IP address of Management Node
 
[mysql_cluster]
ndb-connectstring=192.168.1.120     # IP address of Management Node

Simpan file dan keluar.

Kemudian buat direktori baru untuk data database yang kita definisikan di file konfigurasi node manajemen "config.ini".

mkdir -p /var/lib/mysql-cluster

Sekarang mulai simpul data/ndbd:

ndbd

hasil:

2016-03-22 19:35:56 [ndbd] INFO     -- Angel connected to '192.168.1.120:1186'
2016-03-22 19:35:56 [ndbd] INFO     -- Angel allocated nodeid: 2

Data Node db2 terhubung ke node manajemen ip 192.168.1.120.

E. Ulangi langkah 2.A - 2.D pada server db3.

Karena kami memiliki 2 node data, ulangi langkah 2.A - 2.D pada node data kedua kami.

Langkah 3 - Siapkan SQL Node

Ini adalah langkah yang berisi pengaturan untuk SQL Node yang menyediakan akses aplikasi ke database. Kami menggunakan 2 server CentOS untuk SQL Nodes:

  1. db4 =192.168.1.123
  2. db5 =192.168.1.124

A. Masuk dan Unduh MySQL Cluster

Masuk ke server db4 sebagai pengguna root:

ssh [email protected]

Dan unduh paket MySQL Cluster:

cd ~
wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar
tar -xvf MySQL-Cluster-gpl-7.4.10-1.el7.x86_64.rpm-bundle.tar

B. Instal dan Hapus Paket

Instal perl-Data-Dumper dan hapus mariadb-libs yang bertentangan dengan MySQL Cluster.

yum -y install perl-Data-Dumper
yum -y remove mariadb-libs

C. Instal MySQL Cluster

Instal server MySQL Cluster, klien, dan paket bersama dengan perintah rpm di bawah ini:

cd ~
rpm -Uvh MySQL-Cluster-client-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-server-gpl-7.4.10-1.el7.x86_64.rpm
rpm -Uvh MySQL-Cluster-shared-gpl-7.4.10-1.el7.x86_64.rpm

D. Konfigurasikan SQL Node

Buat file my.cnf baru di direktori /etc:

vi /etc/my.cnf

Dan rekatkan konfigurasi di bawah ini:

[mysqld]
ndbcluster
ndb-connectstring=192.168.1.120       # IP address for server management node
default_storage_engine=ndbcluster     # Define default Storage Engine used by MySQL
 
[mysql_cluster]
ndb-connectstring=192.168.1.120       # IP address for server management node

Simpan file dan keluar dari editor.

Mulai SQL Node dengan memulai server MySQL:

service mysql start

E. Ulangi langkah 3.A - 3.D pada server db5.

Harap ulangi langkah 3.A - 3.D pada server SQL kedua (db5).

Langkah 4 - Pantau Cluster

Untuk melihat status cluster, kita harus login ke node manajemen db1.

ssh [email protected]

Kita dapat menggunakan perintah ndb_mgm untuk melihat status cluster:

ndb_mgm
ndb_mgm> show

Perintah lain yang berguna adalah:

ndb_mgm -e "all status"
ndb_mgm -e "all report memory"

Langkah 5 - Menguji Cluster

Untuk melakukan pengujian pada MySQL Cluster baru kami, kami harus login ke server SQL Nodes db4 atau db5.

Masuk ke server db4:

ssh [email protected]

Ubah kata sandi default MySQL yang disimpan di ".mysql_secret " file di direktori root:

cd ~
cat .mysql_secret

ini contoh saya:

# The random password set for the root user at Tue Mar 22 19:44:07 2016 (local time): qna3AwbJMuOnw23T

Sekarang ubah kata sandi dengan perintah di bawah ini:

mysql_secure_installation

Ketik sandi mysql lama Anda, lalu ketik sandi baru, tekan enter untuk mengonfirmasi semua.

Jika semua sudah selesai, Anda dapat login ke shell MySQL dengan kata sandi Anda:

mysql -u root -p

Setelah Anda masuk, buat pengguna root baru dengan host "@ ", jadi kita bisa mengakses MySQL dari luar.

CREATE USER 'root'@'%' IDENTIFIED BY 'aqwe123';

Ganti aqwe123 dengan kata sandi aman Anda sendiri! Sekarang Anda dapat melihat pengguna root baru dengan host "@" pada daftar pengguna MySQL:

select user, host, password from mysql.user;

Dan beri pengguna root baru akses baca dan tulis dari node jarak jauh:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*94CC7BF027327993D738E11...(Encrypted PASSWORD)' WITH GRANT OPTION;

Sekarang coba buat database baru dari server db4 dan Anda juga akan melihat database di db5.

Ini hanya contoh hasil pengujian replikasi data cluster.

Cluster MySQL telah berhasil disiapkan di CentOS 7 dengan 5 node server.

Kesimpulan

MySQL Cluster adalah teknologi yang menyediakan High Availability and Redundancy untuk database MySQL. Ini menggunakan NDB atau NDBCLUSTER sebagai mesin penyimpanan dan menyediakan pengelompokan dan pembagian otomatis untuk database MySQL. Untuk mengimplementasikan cluster, kita membutuhkan 3 komponen:Management Node (MGM), Data Nodes (NDB) dan SQL Nodes (API). Setiap node harus memiliki memori dan disk sendiri. Tidak disarankan untuk menggunakan penyimpanan jaringan seperti NFS. Untuk menginstal MySQL Cluster pada sistem minimal CentOS 7, kita harus menghapus paket mariadb-libs, konflik mariadb-libs dengan MySQL-Cluster-server dan Anda harus menginstal paket perl-Data-Dumper, diperlukan oleh MySQL-Cluster -server. MySQL Cluster mudah dipasang dan dikonfigurasi di beberapa server CentOS.


Cent OS
  1. Cara Menginstal dan Mengkonfigurasi Nginx di CentOS 7

  2. Cara Instal Node.js dan NPM di CentOS 7

  3. Cara menginstal Node.js dan NPM di CentOS

  1. Cara Menginstal dan Mengonfigurasi Redis di CentOS 7

  2. Cara Menginstal dan Mengonfigurasi GitLab di CentOS 7

  3. Cara Menginstal dan Mengonfigurasi Zabbix di CentOS 7

  1. Cara Instal dan Konfigurasi Redmine di CentOS 7

  2. Cara Instal Node.js dan npm di CentOS 8

  3. Cara Menginstal dan Mengonfigurasi Redis di CentOS 8