编译安装: mysql8-galear-cluster mysql


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


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回