Chào mọi người.
Hôm nay mình sẽ hướng dẫn mọi người cài đặt MySQL Galera Cluster trên CentOS 7.
Giới Thiệu.
Mọi người đã có thể khá quen thuộc với các hệ thống Master-Slave Cluster, tuy nhiên ở bài viết này mình sẽ giới thiệu một hệ thống Cluster khác đó là Multi-Master, cụ thể là MySQL Galera Cluster
MySQL Galera Cluster là một hệ thống Multi-Master mà trên đó tất cả node đều có thể đọc và ghi dữ liệu tại mọi thời điểm, Client có thể kết nối tới mọi node, dữ liệu sẽ được tự động đồng bộ sang node mới khi node mới được thêm vào Cluster.
Cài Đặt.
Chuẩn Bị.
Ở bài viết này mình sẽ sử dụng 3 VPS được cài đặt sẵn CentOS 7.
Các VPS sẽ lần lượt có các địa chỉ IP sau :
- 10.124.11.45
- 10.124.11.41
- 10.124.11.42
Tiến Hành Cài Đặt.
Đầu tiên, ta sẽ tạo file repo Galera trên cả 3 VPS giúp có thể sử dụng yum để cài đặt MySQL Galera Cluster.
vi /etc/yum.repos.d/galera.repo
Nội dung của file galera.repo sẽ như sau.
[galera]
name = Galera
baseurl = http://releases.galeracluster.com/galera-3/centos/7/x86_64/
gpgkey = http://releases.galeracluster.com/GPG-KEY-galeracluster.com
gpgcheck = 1
[mysql-wsrep]
name = MySQL-wsrep
baseurl = http://releases.galeracluster.com/mysql-wsrep-5.7.30-25.22/centos/7/x86_64/
gpgkey = http://releases.galeracluster.com/GPG-KEY-galeracluster.com
gpgcheck = 1
Sau đó, ta sử dụng Yum để cài đặt.
yum -y install galera-3 mysql-wsrep-5.7 rsync lsof policycoreutils-python
Tiếp theo, ta cấu hình trong my.cnf từng VPS như sau :
cp /etc/my.cnf /etc/my.cnf.bk
vi /etc/my.cnf
Nội dung của file my.cnf sẽ như sau :
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
binlog_format=ROW
bind-address=0.0.0.0
default_storage_engine=innodb
innodb_autoinc_lock_mode=2
innodb_flush_log_at_trx_commit=0
innodb_buffer_pool_size=122M
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_provider_options=”gcache.size=300M; gcache.page_size=300M”
wsrep_cluster_name=”galera_cluster1″
wsrep_cluster_address=”gcomm://10.124.11.45,10.124.11.41,10.124.11.42″
wsrep_sst_method=rsync
wsrep_node_address=”10.124.11.45″
wsrep_node_name=”mysql01″
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Mọi người lưu ý hãy chỉnh sửa lại các dòng sau tương ứng với từng VPS.
wsrep_node_address=”10.124.11.45″
wsrep_node_name=”mysql01″
Ngoài ra, mọi người cũng không nên khởi động MySQL trên từng VPS vì sẽ gây ra lỗi.
Tới đây, ta sẽ khởi động MySQL Galera Cluster bằng câu lệnh sau :
/usr/bin/mysqld_bootstrap
Vì phiên bản MySQL được cài đặt lại 5.7 nên Password tạm thời sẽ được tạo ra trong file mysqld.log.
grep 'temporary password' /var/log/mysqld.log
Tiếp theo ta sẽ khởi động MySQL bình thường trên các VPS còn lại.
Systemctl start mysqld
Sau đó truy cập vào mysql để kiểm tra.
mysql -u root -p
Giá trị của “wsrep_cluster_size” đã được tăng từ 1 lên 3 sau khi MySQL trên các VPS còn lại được khởi động.
Để kiểm tra lại Cluster, thì ta tiến hành truy cập vào mysql để tạo một Database.
Rồi truy cập vào MySQL trên một VPS khác để kiểm tra.
Database đã được tạo trên tất cả MySQL thuộc Cluster.
Lời Cuối.
Như vậy là bài viết về việc cài đặt MySQL Galera Cluster đã hết, cảm ơn mọi người đã đọc đến đây.