1.安装
首先配置yum源。在/etc/yum.repos.d/ 的目录下编辑gelare.repo文件。
1 | [galera] |
注意需要替换掉相应的参数:
VERSION是mysql-wsrep的版本,如5.7;
DIST是操作系统,如centos;
RELEASE是操作系统版本,如6;
ARCH是系统架构,如x86_64;
视自己的环境不同作出相应的更改。
源配置好之后,就可以安装了,很简单,只需执行以下命令:
1 | yum install galera-3 mysql-wsrep-5.7 |
手动安装:
使用 (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
2.初始化
1.使用命令:mysqld –initialize 初始化mysql
2.查看默认密码: grep ‘temporary password’ /var/log/mysqld.log
3.更改权限:chown -R mysql:mysql /var/lib/mysql
4.启动mysql服务:service mysqld start
进入mysql:mysql -uroot -p
执行修改密码:alter user user() identified by “新密码”;
5.开放远程登录授权
GRANT ALL PRIVILEGES ON . TO ‘root‘@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
flush privileges;
6.去掉Postfix,这个可能跟MySQL配置有冲突: yum remove postfix -y
7.关闭防火墙(生产上可开放端口):
setenforce 0 && systemctl stop firewalld
8.关闭mysql服务:
service mysqld stop (注意mysql5.7是mysqld)
3.配置文件
1) 修改my.cnf
1 | vim /etc/my.cnf,在末尾增加:!includedir /etc/my.cnf.d/ |
2) 修改wsrep.cnf
1 | vi /etc/my.cnf.d/wsrep.cnf |
1 | [mysqld] |
4.启动
任意选取一个节点,执行:
1 | /usr/bin/mysqld_bootstrap |
然后登陆到mysql ,执行:
1 | show status like "wsrep_cluster_size"; |
不出意外的话,就会显示1,表明这个集群内现在只有一个节点.
其他的节点依次执行:
1 | service mysqld start |
然后再查看wsrep_cluster_size数量。
5.集群重启:
在集群停止之后重启时,先在每个几点上使用mysqld_safe –wsrep-recover查看节点的Recovered position的值,选择值最大的一个作为第一个几点启动,如果启动失败,则在将作为第一个启动节点的服务器上编辑grastate.dat文件(可以使用find命令查找位置),将safe_to_bootstrap的值设为1,使用/usr/bin/mysqld_bootstrap命令启动该节点,其他节点启动与以前一致。
查看配置1
cat /etc/my.cnf.d/wsrep.cnf
修改启动项1
2vim /var/lib/mysql/grastate.dat
safe_to_bootstrap 改为1
6.错误排查
查看mysql日志位置:
1 | show variables like 'log_error'; |