前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS 7 Galera Cluster安装全攻略

CentOS 7 Galera Cluster安装全攻略

作者头像
算法之名
发布2019-08-20 11:03:07
7750
发布2019-08-20 11:03:07
举报
文章被收录于专栏:算法之名算法之名

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档