CentOS 7 Galera Cluster安装全攻略

最近Hive的原数据要用到mysql,所以又把Galera Cluster又装了一遍,虽然装过很多遍,但依然会有一些模糊的地方。所以大致记录下来分享出来。

Galera Cluster必须安装在至少3台服务器上,作为全主无延迟集群,奇数台服务器是为了防止脑裂。

首先要准备的文件如下

安装之前,我们要安装一些准备的库:

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

perl-DBD-MySQL perl-Time-HiRes perl-Digest nc rsync lsof galera autoconf 大概就这些了吧,不排除会有遗漏,所以装galera cluster是很麻烦的事情。

安装之前移除CentOS 7自带的mysql库,这个之前博客有写过

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

然后开始安装

rpm -ivh 加文件名

如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的全部安装就完成了。

猜你喜欢

转载自my.oschina.net/u/3768341/blog/1809906