CentOS 7 Galera Cluster安裝全攻略

最近Hive的原數據要用到mysql,因此又把Galera Cluster又裝了一遍,雖然裝過不少遍,但依然會有一些模糊的地方。因此大體記錄下來分享出來。node

Galera Cluster必須安裝在至少3臺服務器上,做爲全主無延遲集羣,奇數臺服務器是爲了防止腦裂。mysql

首先要準備的文件以下c++

安裝以前,咱們要安裝一些準備的庫:sql

yum install libaio gcc gcc-c++ boost-devel scons check-devel openssl-devel openssh-clientsvim

perl-DBD-MySQL perl-Time-HiRes perl-Digest nc rsync lsof galera autoconf 大概就這些了吧,不排除會有遺漏,因此裝galera cluster是很麻煩的事情。服務器

安裝以前移除CentOS 7自帶的mysql庫,這個以前博客有寫過ssh

yum remove mariadb-libs-5.5.56-2.el7.x86_64socket

而後開始安裝ide

rpm -ivh 加文件名ui

如rpm -ivh mysql-wsrep-libs-compat-5.6-5.6.36-25.20.el6.x86_64.rpm

圖片中全部的要所有安裝,安裝順序除mysql-wsrep-server-5.6-5.6.36-25.20.el6.x86_64.rpm以及mysql-wsrep-5.6-5.6.36-25.20.el6.x86_64.rpm最後裝之外,其餘的能夠任意順序。

若是安裝過程當中有錯誤,那就是庫沒有裝齊,你能夠用--force強行安裝。

安裝完成以後執行一下操做

  1. mkdir -p /opt/dbdata/mysql_3306 
  2. chown -R mysql:mysql /opt/dbdata/mysql_3306 
  3. chmod -R 755 /opt/dbdata/mysql_3306 
  4. mysql_install_db --user=mysql --datadir=/opt/dbdata/mysql_3306

建議dbdata/mysql_3306放在你比較大的外掛盤裏面,不要放在系統盤。也就是說/opt目錄可選。能夠用df -h來查看。

編寫my.cnf,以下

[client]
port            = 3306
socket         = /mnt/dbdata/mysql_3306/mysql.sock
[mysqld_multi]
mysqld  = /usr/bin/mysqld_safe
mysqladmin      = /usr/bin/mysqladmin
log             = /var/log/mysqld_multi.err
[mysqldump]
quick
max_allowed_packet = 16M


[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
[mysqld]
port                    = 3306
socket                  = /mnt/dbdata/mysql_3306/mysql.sock
key_buffer_size = 16M
max_allowed_packet      = 1M
table_open_cache        = 64
sort_buffer_size        = 512K
net_buffer_length       = 8K
read_buffer_size        = 256K
read_rnd_buffer_size    = 512K
myisam_sort_buffer_size = 8M
log-bin-trust-function-creators = 1
expire_logs_days        = 1
max_connections = 600
skip-external-locking
skip-name-resolve
datadir=/mnt/dbdata/mysql_3306
character_set_server    = utf8
log-bin         = mysql-bin
max_allowed_packet=64M
# Mandatory Settings
server-id= 44
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
# Optional mysqld Settings
#datadir=/path/to/datadir
#innodb_buffer_pool_size=28G
#innodb_log_file_size=100M
#innodb_file_per_table=1
#innodb_flush_log_at_trx_commit=0
# Basic wsrep Provider Settings
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
#wsrep_provider_options="gcache.szie=32m;gcache.page_size=32m;"
##############################################
#if this is the node started firstly,use this option
#wsrep_cluster_address=gcomm://
#nor,use this option
wsrep_cluster_address=gcomm://IP1,IP2,IP3
##############################################
wsrep_cluster_name='galera_cluster'
wsrep_node_address='IP1'
wsrep_node_name='node1'
wsrep_sst_method=xtrabackup
wsrep_sst_auth=root:密碼
# Optional wsrep Provider Settings
#wsrep_node_incoming_address='192.168.1.158'
#wsrep_sst_donor='demo_node1'
#wsrep_slave_threads=16
###############################################################################
#啓動node1 --wsrep-new-cluster

三臺服務器不一樣的地方

server-id 要設置不一樣的數字,通常設爲IP地址最後一個數字

wsrep_node_address設爲各自不一樣的IP

wsrep_node_name設爲不一樣的節點名稱

wsrep_sst_method第一次鏈接集羣的時候必須設爲rsync,若是用xtrabackup,第一次鏈接集羣,你是連不進去的,第一次三臺服務器鏈接成功以後,再關閉全部的mysql服務,再所有改回xtrabackup,以後就能夠鏈接成功。

編輯完成後記得放入/etc目錄中

第一臺服務器啓動前,註釋掉wsrep_cluster_address=gcomm://IP1,IP2,IP3,把wsrep_cluster_address=gcomm://給解除註釋。

啓動第一臺服務器service mysql start

直接使用mysql進入,無需用戶名,密碼。

GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '密碼';  '%'的意思是說不限制IP訪問,若是你要限制IP訪問,能夠設置IP地址段,如 GRANT ALL ON *.* TO 'root'@'192.168.%' IDENTIFIED BY '密碼';

use mysql

update user set password=PASSWORD('密碼') where user='root';

flush privileges;

exit

停掉服務service mysql stop

從新編輯my.cnf   vim /etc/my.cnf

註釋掉wsrep_cluster_address=gcomm://,反註釋wsrep_cluster_address=gcomm://IP1,IP2,IP3

再次啓動 service mysql start --wsrep_cluster_address=gcomm://

接着連續啓動第二,第三臺服務器 service mysql start

此時三臺服務器都可以正常啓動並鏈接成功。

進入任一臺mysql查看,mysql -uroot -hIP1 -p

輸入密碼後,進入

show status like 'wsrep%';

說明三臺服務器鏈接成功,此時你在任意一臺作的SQL寫入,修改,建立表,建立庫操做都會同時在三臺服務器響應,數據達到徹底同步。

關閉全部服務器service mysql stop

vim /etc/my.cnf

wsrep_sst_method把rsync改爲xtrabackup

再按照上述方法依次啓動服務器,galera cluster的所有安裝就完成了。

相關文章
相關標籤/搜索