安装环境:
centOs7
Galera Cluster5.7(MySql5.7)
下载galeracluster
下载地址http://galeracluster.com/downloads/
安装前需卸载原有mysql,删除相关文件夹
卸载Postfix,这个可能跟MySQL配置有冲突: yum remove postfix –y
安装需要外网环境
使用 (yum install -y 包名)命令进行安装。
安装顺序:
1、 mysql-wsrep-libs-compat-5.7-5.7.23-25.15.el7.x86_64.rpm
2、 mysql-wsrep-common-5.7-5.7.23-25.15.el7.x86_64.rpm
3、 mysql-wsrep-libs-5.7-5.7.23-25.15.el7.x86_64.rpm
4、 mysql-wsrep-devel-5.7-5.7.23-25.15.el7.x86_64.rpm
5、 mysql-wsrep-client-5.7-5.7.23-25.15.el7.x86_64.rpm
6、 mysql-wsrep-server-5.7-5.7.23-25.15.el7.x86_64.rpm
7、 mysql-wsrep-5.7-5.7.23-25.15.el7.x86_64.rpm
8、 mysql-wsrep-test-5.7-5.7.23-25.15.el7.x86_64.rpm(该包在安装时会提示没有 mysql-wsrep-server的依赖,使用rpm 加上–nodeps参数安装)
9、galera-3-25.3.24-2.el7.x86_64
安装完成后mysql 首次启动
1)使用命令:mysqld --initialize 初始化mysql
2)查看默认密码: grep ‘temporary password’ /var/log/mysqld.log (路径为my.cnf 中配置的log_error 路径)
3)重设root账户密码:SET PASSWORD=PASSWORD(“Liufahui1@”);(mysql5.7默 认密码等级比较高,修改密码的时候需要至少8位,包含数字,大小写和特殊字符)
4)开放远程登录授权
给对应需要访问MySQL的用户名和密码进行授权,如果没有授权,是无法远程连接MySQL的
授权无端口限制的用户登录mysql数据库(生产上开放端口):
GRANT ALL PRIVILEGES ON . TO ‘用户名’@’%’ IDENTIFIED BY ‘密码’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
5)去掉Postfix,这个可能跟MySQL配置有冲突: yum remove postfix -y
6)关闭防火墙(生产上可开放端口):
setenforce 0 && systemctl stop firewalld
7) 关闭mysql服务:service mysqld stop (注意mysql5.7是mysqld)
修改配置文件:
1) 修改my.cnf
vim /etc/my.cnf,增加:!includedir /etc/my.cnf.d/
2) 修改wsrep.cnf
vi /etc/my.cnf.d/wsrep.cnf
[mysqld]
server-id=145 #每个节点一个唯一的ID
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
innodb_locks_unsafe_for_binlog=1
query_cache_size=0
query_cache_type=0
bind-address=0.0.0.0
wsrep_provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_provider_options=‘gmcast.listen_addr=tcp://192.168.79.145:4567’ #修改为本节点地址
wsrep_cluster_name=“my_wsrep_cluster” #集群名称,所有节点配置为同一个
wsrep_cluster_address=gcomm://192.168.79.145:4567,192.168.79.146:4567,192.168.79.147:4567 #节点中所有节点地址
wsrep_node_name=node1 #node名称,每个节点名称唯一
wsrep_node_address=‘192.168.79.145’ #本节点地址
wsrep_node_incoming_address=‘192.168.79.145’ #本节点地址
wsrep_slave_threads=1
wsrep_certify_nonPK=1
wsrep_max_ws_rows=131072
wsrep_max_ws_size=1073741824
wsrep_debug=0
wsrep_convert_LOCK_to_trx=0
wsrep_retry_autocommit=1
wsrep_auto_increment_control=1
wsrep_drupal_282555_workaround=0
wsrep_causal_reads=0
wsrep_notify_cmd=
wsrep_sst_method=rsync
wsrep_sst_auth=root:Liufahui1@ #数据量库用户名密码
wsrep_sst_donor=‘node1,node2,node3,’ #节点中所有节点的node名称
启动集群:
1) 集群第一个节点启动
wsrep.cnf 配置中的 wsrep_cluster_address 需要如此配置 wsrep_cluster_address=gcomm:// ,以后再启动的话需要配置完整。
使用 /usr/bin/mysqld_bootstrap 命令启动
启动成功后将wsrep_cluster_address=gcomm://补充完整。
2) 其他节点启动
修改好my.cnf和wsrep.cnf参数后直接启动mysql即可。
注意:/usr/bin/mysqld_bootstrap 命令只在集群第一个节点启动时使用,因为这个脚本中带有一个参数:–wsrep-new-cluster,代表新集群。
集群重启:
在集群停止之后重启时,先在每个几点上使用mysqld_safe --wsrep-recover查看节点的Recovered position的值,选择值最大的一个作为第一个几点启动,如果启动失败,则在将作为第一个启动节点的服务器上编辑grastate.dat文件(可以使用find命令查找位置),将safe_to_bootstrap的值设为1,使用/usr/bin/mysqld_bootstrap命令启动该节点,其他节点启动与以前一致。