基础环境:CentOS 6.4
检查本机中是否有mysql,使用命令yumlist installed | grep mysql 如果有就干掉它,命令:yum -y remove XXXXX
关闭防火墙:chkconfig iptables off (永久生效,如果防火墙因其他原因不可关闭,开放3306和4567端口)
关闭SELinux:vi/etc/selinux/config
把SELINUX=enforcing改为SELINUX=disabled
文件准备:我将其放在/var/local/mysql 文件中。(官网:http://galeracluster.com/products)
galera-3-25.3.23-2.el6.x86_64.rpm
mysql-wsrep-5.7-5.7.21-25.14.el6.x86_64.rpm
mysql-wsrep-client-5.7-5.7.21-25.14.el6.x86_64.rpm
mysql-wsrep-common-5.7-5.7.21-25.14.el6.x86_64.rpm
mysql-wsrep-devel-5.7-5.7.21-25.14.el6.x86_64.rpm
mysql-wsrep-libs-5.7-5.7.21-25.14.el6.x86_64.rpm
mysql-wsrep-libs-compat-5.7-5.7.21-25.14.el6.x86_64.rpm
mysql-wsrep-server-5.7-5.7.21-25.14.el6.x86_64.rpm
mysql-wsrep-test-5.7-5.7.21-25.14.el6.x86_64.rpm
开始安装(一定注意安装顺序,部分有依赖关系)
1、rpm -ivh mysql-wsrep-common-5.7-5.7.21-25.14.el6.x86_64.rpm
2、rpm -ivh mysql-wsrep-libs-5.7-5.7.21-25.14.el6.x86_64.rpm
3、rpm -ivh mysql-wsrep-client-5.7-5.7.21-25.14.el6.x86_64.rpm
4、rpm -ivh mysql-wsrep-server-5.7-5.7.21-25.14.el6.x86_64.rpm
5、rpm -ivh mysql-wsrep-libs-compat-5.7-5.7.21-25.14.el6.x86_64.rpm
6、rpm -ivh galera-3-25.3.23-2.el6.x86_64.rpm
安装完成后开始编写配置文件
命令:vi /etc/my.cnf
注释掉该配置文件中的所有内容并在其中添加一行:!includedir/etc/my.cnf.d/
然后使用命令:vi /etc/my.cnf.d/wsrep.cnf
将如下内容copy至该文件中
[mysqld]
log_timestamps=SYSTEM
port=3306
server_id=00
explicit_defaults_for_timestamp=true
# basedir=/usr/local/mysql
datadir=/usr/local/mysql/data/
socket=/usr/local/mysql/data/mysql.sock
pid_file=/run/mysqld/mysqld.pid
log_error=/var/log/mysql.error
wsrep_cluster_name='galera_cluster_mysql'
wsrep-provider=/usr/lib64/galera-3/libgalera_smm.so
wsrep_node_name = node1
wsrep_cluster_address=gcomm://192.168.19.130
wsrep_node_address='本机ip'
wsrep_provider_options="gmcast.listen_addr=tcp://192.168.19.131:4567"
wsrep_sst_donor='node1,node2,node3,'
wsrep_sst_method=rsync
wsrep_sst_auth=test:123456
slow_query_log=on
[client]
default-character-set=utf8
socket=/usr/local/mysql/data/mysql.sock
[mysql]
default-character-set=utf8
socket=/usr/local/mysql/data/mysql.sock
[mysqldump]
max_allowed_packet = 512M
[mysqld_safe]
malloc-lib=/usr/lib64/libjemalloc.so.1
重要说明:
该配置中有几处重要配置项需注意
1、 server_id=00:该配置是MySQL的服务器id,必须唯一,不可重复。
2、 wsrep_cluster_name='galera_cluster_mysql':该配置是galera集群名称,每个节点配置保持一致。
3、 wsrep-provider=/usr/lib64/galera-3/libgalera_smm.so:该文件的引入是安装默认路径,如果路径有误请使用命令:find / -name libgalera_smm.so查找该文件
4、 wsrep_node_name = node1:wrest节点名称,必须唯一,各个节点不可重复
5、 wsrep_cluster_address=gcomm://192.168.19.130:该配置是集群通信ip,第一个启动的节点要空着,子节点指向上一节点,例如:主nodeßnode1ßnode2…
6、 wsrep_sst_donor='node1,node2,node3,:用逗号分割,作为状态转移源,如果有节点挂掉,会跳至相应节点,最后一个逗号表示选择最优
7、 malloc-lib=/usr/lib64/libjemalloc.so.1:这个库干嘛的我也不太清楚。如果没有使用命令:yum -y installjemalloc进行安装,如果获取不到就先下载个数据源,命令:rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm然后再执行 yum -y install jemalloc 如果遇到该错误:Error:Cannot retrieve metalink for repository: epel. Please verify its path and tryagain
先不要修改epel源,有可能是证书过期了,执行命令:yum --disablerepo=epel -y update ca-certificates后再重试
编写完配置文件后,就可以初始化数据库了,先创建文件夹及更改权限
命令:mkdir /usr/local/mysql && chown mysql/usr/local/mysql && chgrp mysql /usr/local/mysql
然后执行命令:mysqld --initialize --user=mysql
初始化数据库完毕。
登录mysql:首次登录密码是错误日志文件里的
使用命令:grep 'temporary password' /var/log/mysql.error
在xxxxxxxxxxxxx root@localhost:后面那个就是root的登录密码
1、执行rpm -ivhmysql-wsrep-common-5.7-5.7.21-25.14.el6.x86_64.rpm时若报以下错误:
file/usr/share/mysql/charsets/swe7.xml from install ofmysql-wsrep-common-5.7-5.7.21-25.14.el6.x86_64 conflicts with file from packagemysql-libs-5.1.66-2.el6_3.x86_64
我这个是因为与mysql-libs-5.1.66-2.el6_3.x86_64文件与安装文件冲突了,干掉就可以了
使用命令:rpm -qa| grep mysql-libs-5.1.66-2.el6_3.x86_64
2、执行 rpm -ivh openssl-compat-bitcoin-libs-1.0.1g-0.1.el6.art.x86_64.rpm时若报以下错误
error: Faileddependencies:
libcrypto.so.10(libcrypto.so.10)(64bit) is needed bymysql-wsrep-libs-compat-5.7-5.7.21-25.14.el6.x86_64
libssl.so.10(libssl.so.10)(64bit) is needed bymysql-wsrep-libs-compat-5.7-5.7.21-25.14.el6.x86_64
该错误原因是本机缺少openssl或版本太低,官网https://pkgs.org/download/libssl.so.10(libssl.so.10)(64bit)下载openssl-compat-bitcoin-libs-1.0.1g-0.1.el6.art.x86_64.rpm 并安装。
使用命名:rpm -ivh openssl-1.0.1e-57.el6.x86_64.rpm
3、执行rpm -ivhmysql-wsrep-libs-compat-5.7-5.7.21-25.14.el6.x86_64.rpm时若报以下错误
error: Faileddependencies:
libboost_program_options.so.5()(64bit) is needed bygalera-3-25.3.23-2.el6.x86_64
解决方法:执行命令:yum -y install boost-devel
4、MySQL的安装日志如果出现该错误
2018-05-08T07:54:42.896145-08:000 [ERROR] WSREP: wsrep_load(): dlopen(): /usr/lib64/galera-3/libgalera_smm.so:symbol TLSv1_2_server_method, version libssl.so.10 not defined in filelibssl.so.10 with link time reference
2018-05-08T07:54:42.896169-08:000 [ERROR] WSREP: wsrep_load(/usr/lib64/galera-3/libgalera_smm.so) failed:Invalid argument (22). Reverting to no provider.
升级openssl,使用命令:yum updateopenssl
5、启动MySQL的时候如果mysql.error日志报错提示无法读写grastate.dat,系统甚至都搜索不到mysql.lock如果初始化数据库的时候没有错误,那么建议重启试试,原因不明,可能有些配置要重启生效(猜测)