Halo sobat sekolahlinux kali ini saya coba membuat tutorial tentang mariadb cluster master:master dengan galera pada centos 7, tentu pertama-tama saya beranggapan kalian sudah menginstall mariadb kalian dan sudah ada db dan juga cms atau web dynamis berjalan diatasnya agar tutorial kali ini lebih real :D, berikut ini alat-alat yang disiapkan, untuk case ini saya menggunakan wordpress untuk cms nya
3 buah web server+mariadb+wordpress
- 192.168.100.10 = hostname galera1 = bootstrap / –wsrep-new-cluster
- 192.168.100.20 = hostname galera2
- 192.168.100.30 = hostname galera3
Jangan lupa disable selinux
vim /etc/selinux/config
Ganti “enforcing” dengan “disabled”
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
Pertama tambahkan repo mariadb
vim /etc/yum.repos.d/mariadb.repo
Lalu tambahkan konten ini didalamnya
# MariaDB 10.0 CentOS repository list # http://mariadb.org/mariadb/repositories/ [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.0/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 enabled=0
Jika sudah edit file /etc/hosts
vim /etc/hosts
Lalu tambahkan konten dibawah ini didalamnya
192.168.100.10 galera1 192.168.100.20 galera2 192.168.100.30 galera3
Selanjutnya install mariadb galera
yum --enablerepo=mariadb -y install MariaDB-Galera-server
Selanjutnya edit file /etc/my.cnf.d/server.cnf dan uncomment juga tambahkan baris seperti dibawah
[mysqld] log_error = /var/log/mysql.log # # * Galera-related settings # [galera] # Mandatory settings #wsrep_provider= wsrep_provider=/usr/lib64/galera/libgalera_smm.so #wsrep_cluster_address= wsrep_cluster_address="gcomm://192.168.100.10,192.168.100.20,192.168.100.30" binlog_format=row default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 #bind-address=0.0.0.0 #ini adalah nama untuk group cluster wsrep_cluster_name="galeracluster" #ini adalah alamat ip server ini wsrep_node_address="192.168.100.10" wsrep_sst_method=rsync # # Optional setting #wsrep_slave_threads=1 #innodb_flush_log_at_trx_commit=0
Rubah wsrep_node_address script diatas pada masing2 server menjadi seperti dibawah
- Server galera1 = wsrep_node_address=”192.168.100.10″
- Server galera2 = wsrep_node_address=”192.168.100.20″
- Server galera3 = wsrep_node_address=”192.168.100.30″
Penjelasan dari rule diatas
- wsrep_cluster_address : untuk mendifinisikan ipaddress server mana saja yang nanti akan masuk kedalam lingkungan grup cluster
- wsrep_cluster_name : nama untuk grup cluster, namanya harus sama pada setiap server yang masuk kedalam wsrep_cluster_address
- wsrep_node_address : diisikan dengan alamat ip server masing-masing node (jika anda setting di galera1 maka isikan dengan ip galera1, jika anda setting di galera2 isikan dengan ip galera2 dan seterusnya begitu)
- wsrep_sst_method : metode yang digunakan untuk replikasi db nya
sekarang jalankan perintah ini hanya pada server galera1
/etc/init.d/mysql start --wsrep-new-cluster
Lalu coba jalankan perintah ini pada server galera1
mysql -u root -p -e "show status like 'wsrep%'"
coba lihat pada baris “wsrep_incoming_addresses” ip nya baru 1
| wsrep_incoming_addresses | 192.168.100.20:3306|
Selanjutnya jalankan perintah ini pada server galera2 & galera3
/etc/init.d/mysql start
Lalu coba jalankan lagi perintah ini pada server galera1
mysql -u root -p -e "show status like 'wsrep%'"
Dan coba lihat kali ini pada baris “wsrep_incoming_addresses” sudah ada 3 ip
| wsrep_incoming_addresses | 192.168.100.20:3306,192.168.100.30:3306,192.168.100.10:3306 |
Oke tandanya kita sudah berhasil, untuk testnya coba kalian buat database di server mana saja dan kalian coba write table di server mana saja, pasti nanti di server lainnya pun akan ada, cara ini bisa kalian kombinasikan dengan haproxy sebagai loadbalancer, karena master:master
Terima kasih banyak atas tutorialnya.
Saat menjalankan /etc/init.d/mysql start –wsrep-new-cluster
Hasilnya seperti ini :
Can’t create/write to file ‘/var/log/mysql.log’ (Errcode:13 “Permission denied”)
Mohon bantuannya min 😀
halo mas.. mungkin mas bisa coba buat file log nya seperti ini
`touch /var/log/mysql.log`
lalu set permisionnya ke user mysql
Halo,
beberapa hari yang lalu saya mengkonfigurasi galera cluster untuk menggabungkan 3 node di CentOS 6.
lalu saya berhasil dengan menguji replikasi di setiap database pada setiap node.
Pagi ini saya memeriksa wsrep_cluster_size, dan nilainya adalah 0.
Saya tidak dapat mereplikasi data apa pun di setiap database
Saya coba untuk start mysql, tetapi gagal. Ini adalah pesan error nya:
mysqld_safe logging to ‘/var/log/mariadb.log’
131001 10:12:29 mysqld_safe starting mysqld daemon wirh database from/ var / lib / mysql
………………………………………….. ………………ERROR!
kemudian, saya membuat perintah chmod 777 /etc/my.cnf dan chmod 777 /etc/my.cnf.d/server.cnf
dan akhirnya sy bisa start service mysql nya lagi.
tetapi nilai pada wrep_cluster_size masih 0
Apakah ada service dari galera yang harus saya start jga?
Terima kasih!