https://galeracluster.com/downloads/
http://releases.galeracluster.com/
# mysql8
---创建mysql目录及mysql日志文件
touch /var/log/mysql.error
-日志文件赋权限
chmod -R 777 /var/log/mysql.error
-创建mysql 数据目录
mkdir -p /usr/local/mysql/data/
-赋权限
chmod -R 777 /usr/local/mysql/
# 卸载 mariadb
-查看系统是否已经安装了mariadb
rpm -qa | grep mariadb
-如果存在则执行:
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
# 安装
yum -y install gcc gcc-c++ openssl openssl-devel lsof socat perl boost-devel rsync jemalloc libaio libaio-devel net-tools
rpm -ivh mysql-wsrep-common-8.0.19-26.3.el7.x86_64.rpm
rpm -ivh mysql-wsrep-libs-8.0.19-26.3.el7.x86_64.rpm
rpm -ivh mysql-wsrep-client-8.0.19-26.3.el7.x86_64.rpm
rpm -ivh mysql-wsrep-server-8.0.19-26.3.el7.x86_64.rpm
rpm -ivh mysql-wsrep-libs-compat-8.0.19-26.3.el7.x86_64.rpm
rpm -ivh mysql-wsrep-devel-8.0.19-26.3.el7.x86_64.rpm
rpm -ivh mysql-wsrep-8.0-8.0.19-26.3.el7.x86_64.rpm
rpm -ivh http://releases.galeracluster.com/galera-4/centos/7/x86_64/galera-4-26.4.5-1.el7.x86_64.rpm
--创建wsrep.cnf 文件
编辑 /etc/my.cnf 注释掉所有,增加!includedir /etc/my.cnf.d/
vim /etc/my.cnf.d/wsrep.cnf
---
[mysqld]
#设置跳过密码认证(自定义密码设置成功后,需要删除此项)
skip-grant-tables
lower_case_table_names=1
# 设置3306端口
port=3306
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。
max_connect_errors=1000
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
#MySQL服务器的ID,必须是唯一的,集群各个节点也不同
server_id=1
# 防止日志时间和系统时间不一样
log_timestamps=SYSTEM
explicit_defaults_for_timestamp=true
log_error=/var/log/mysql.error
pid_file=/run/mysqld/mysqld.pid
user=mysql
socket=/usr/local/mysql/data/mysql.sock
# galera集群的名字,必须是统一的
wsrep_cluster_name='mysql_cluster'
# wsrep提供者,必须配置(可以通过find命令查找 该文件在那两个目录下)
wsrep-provider=/usr/lib64/galera-3/libgalera_smm.so
#wsrep节点的ID,必须是唯一的,集群各个节点也不同
wsrep_node_name = node1
# 集群中的其他节点地址,可以使用主机名或IP (数据库初始化之前先不配置此项,但是初始化完成之后需要配置此项)
#wsrep_cluster_address=gcomm://192.168.1.33:4567,192.168.1.34:4567,192.168.1.35:4567
wsrep_cluster_address=gcomm://
# 本机节点地址,可以使用主机名或IP
wsrep_node_address='192.168.1.33'
# 指定wsrep启动端口号,4567为默认值
wsrep_provider_options ="gmcast.listen_addr=tcp://192.168.1.33:4567"
# 一个逗号分割的节点串作为状态转移源,比如 wsrep_sst_donor=node1,node2,node3 如果node1可用,用node2,如果node2不可用,用node3,最后的逗号表明让提供商自己选择一个最优的。
wsrep_sst_donor='node1,node2,node3'
# 集群同步方式
wsrep_sst_method=rsync
# 集群同步的用户名密码
wsrep_sst_auth=test:test
slow_query_log=on
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/usr/local/mysql/data/mysql.sock
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
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
---
--初始化mysql
mysqld --initialize –-console
--启动mysql
service mysqld start
--修改mysql 密码
update mysql.user set authentication_string=password('root') where user='root';
flush privileges;
--删除skip-grant-tables, 重启mysql
service mysqld restart
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
--设置mysql 开机启动
systemctl enable mysqld.service
chkconfig --levels 2345 mysqld on
--按照上面的步骤安装其余两台机器或者通过虚拟机克隆,克隆出两台机器,需要注意的是一下三项参数必须按照不同机器来配置
server_id=1
wsrep_node_name = node1
wsrep_provider_options ="gmcast.listen_addr=tcp://192.168.1.33:4567"
---启动集群环境,第一台启动的集群服务必须使用下面的命令:
bash /usr/bin/mysqld_bootstrap
---其余节点启动
systemctl start mysqld.service
#创建数据库实例
node3:
mysql -uroot -p
create database abc;
node1,node2:
show databases;
https://blog.csdn.net/xintingandzhouyang/article/details/103689846