2.2 打开iptables服务:
vim /etc/sysconfig/iptables
添加一行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT/sbin/iptables -I INPUT -p vrrp -j ACCEPT
然后重启服务:service iptables restart
2.3 关闭selinux功能及设置内核参数:
vim /etc/sysconfig/selinux
设置SELINUX=disabled
Setenforce 0临时关闭selinux
使用getenforce 查看selinux的状态。
echo "1" >/proc/sys/net/ipv4/ip_forward
/sbin/sysctl -p
2.4 卸载mysql的软件包。
rpm -e mysql-libs --nodeps
2.5 设置MariaDB的源。
cd /etc/yum.repos.d/
新增一个文件,内容如下:
vim /etc/yum.repos.d/MariaDB.repo
[mariadb]
name=MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
[mariadb]
name = MariaDB
baseurl = http://mirrors.ustc.edu.cn/mariadb/yum/10.0/centos6-amd64/
gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
#centOS7
[mariadb]
name = MariaDB
baseurl = http://mirrors.ustc.edu.cn/mariadb/yum/10.0/centos7-amd64/
gpgkey=http://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
yum clean all
yum makecache
2.6安装MariaDB的软件包。
yum -y install MariaDB-server mariadb-server-galera
修改Mariadb配置文件:
vim /etc/my.cnf.d/server.cnf
在[mysqld]行下加入以下内容:
skip-name-resolve
lower_case_table_names=1
max_allowed_packet=32M
character-set-server=utf8
max_connections = 1000
group_concat_max_len = 102400
innodb_file_per_table
innodb_file_format = Barracuda
innodb_strict_mode = 0
集群配置:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mariadb/mariadb.log
pid-file=/run/mariadb/mariadb.pid
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
skip-name-resolve
lower_case_table_names=1
max_allowed_packet=2048M
max_connections = 1000
group_concat_max_len = 102400
default-storage-engine = innodb
innodb_file_per_table
innodb_file_format = Barracuda
innodb_strict_mode = 0
expire_logs_days=2
#
# * Galera-related settings
#
[galera]
wsrep_provider = /usr/lib64/galera/libgalera_smm.so
wsrep_cluster_name='reach'
wsrep_cluster_address = "gcomm://172.16.6.110,172.16.6.227"
wsrep_node_name = x1
wsrep_node_address=172.16.6.227
wsrep_on=ON
binlog_format=ROW
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=2
innodb_buffer_pool_size=1024M
wsrep_sst_method=rsync
wsrep_sst_auth=root:Jjjt@china
bind-address=0.0.0.0
启动第一个集群节点:
galera_new_cluster
其它节点启动:
systemctl start mariadb
集群重启时要从最后一个结点开始
如果都启动不了,需要在最后一个节点修改data目录下的文件:
vim /var/lib/mysql/grastate.dat
修改safe_to_bootsrrap值为1;
其余节点删除data目录下的两个文件:
rm -f galera.cache gvwstate.dat
在MariaDB1上执行语句:
grant all privileges on *.* to sa@'%' identified by 'sa';
flush privileges;
在MariaDB2上执行语句:
grant all privileges on *.* to sa@'%' identified by 'pass$123';
flush privileges;
mariadb配置Jemalloc内存管理:
Jemalloc安装:wget https://github.com/jemalloc/jemalloc/releases/download/5.2.1/jemalloc-5.2.1.tar.bz2
tar -jxvf jemalloc-5.2.1.tar.bz2
cd jemalloc-5.2.1
yum -y install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
./configure -prefix=/usr/local/jemalloc
make
make install
vim /usr/lib/systemd/system/mariadb.service
在[server]下加入以下内容:
Environment="LD_PRELOAD=/usr/local/lib/libjemalloc.so"
systemctl daemon-reload
重启 mariadb
#proxsql安装(安装前需要先安装mysql客户端):
/etc/yum.repos.d/proxysql.repo
输入以下内容后保存:
[proxysql_repo]
name= ProxySQL
baseurl=http://repo.proxysql.com/ProxySQL/proxysql-2.3.x/centos/8
gpgcheck=1
gpgkey=http://repo.proxysql.com/ProxySQL/repo_pub_key
执行:
yum -y install proxysql
systemctl start proxysql
mysql -uadmin -padmin -h127.0.0.1 -P6032
#配置
set mysql-default_charset='utf8mb4';
set mysql-default_collation_connection='utf8mb4_general_ci';
set mysql-max_allowed_packet=67108864;
set mysql-max_connections=10000;
load mysql variables to runtime;
save mysql variables to disk;
insert into mysql_servers(hostgroup_id,hostname,port,weight,comment) values(10,'0.0.0.0',3306,1,'Write Group');
insert into mysql_servers(hostgroup_id,hostname,port,weight,comment) values(20,'0.0.0.0',3306,1,'Read Group');
insert into mysql_servers(hostgroup_id,hostname,port,weight,comment) values(20,'0.0.0.0',3306,1,'Read Group');
load mysql servers to runtime;
save mysql servers to disk;
select * from mysql_servers;
insert into mysql_users(username,password,default_hostgroup,transaction_persistent) values('sydw','88888888',10,1);
load mysql users to runtime;
save mysql users to disk;
select * from mysql_users;
#主数据库端用root用户本机执行
CREATE USER 'monitor'@'*' IDENTIFIED BY 'monitor';
GRANT SELECT ON *.* TO 'monitor'@'*' WITH GRANT OPTION;
FLUSH PRIVILEGES;
#proxysql 6032端口执行
set mysql-monitor_username='monitor';
set mysql-monitor_password='monitor';
load mysql variables to runtime;
save mysql variables to disk;
insert into mysql_query_rules(rule_id,active,match_digest,destination_hostgroup,apply) values(2,1,'^SELECT',20,1);
insert into mysql_query_rules(rule_id,active,match_digest,destination_hostgroup,apply) values(1,1,'^SELECT.*FOR UPDATE$',10,1);
load mysql query rules to runtime;
save mysql query rules to disk;
#查询写入情况
select rule_id,active,match_digest,destination_hostgroup,apply from mysql_query_rules;
set mysql-set_query_lock_on_hostgroup=0;
load mysql variables to runtime;
save mysql variables to disk;
#修改proxysql端口(修改后需要重启proxysql):
set mysql-interfaces="0.0.0.0:6033";
save mysql variables to disk;
#修改mysql版本
update global_variables set variable_value="8.0.29" where variable_name='mysql-server_version';
#修改后,需要加载到RUNTIME,并保存到disk
load mysql variables to runtime;
save mysql variables to disk;
# 查询
select * from global_variables where variable_name='mysql-server_version';
分享到:
相关推荐
### MariaDB集群部署详解 #### 一、概述 在当今数据密集型的应用环境中,数据库的稳定性和可用性显得尤为重要。为了提高数据处理能力和系统可靠性,许多企业选择搭建数据库集群。MariaDB作为一款开源的关系型...
### Mariadb主从环境搭建详解 #### 一、概述 在现代企业的数据库管理中,为了提高数据处理能力、实现负载均衡、确保数据安全与备份,通常会采用主从复制(Master-Slave Replication)的方式来构建数据库集群。本文...
Mariadb+Haproxy负载均衡集群搭建 Mariadb 是一个开源的关系数据库管理系统,它是 MySQL 的一个分支,具有高性能、可靠性和可扩展性等特点。Galera 是一个 MySQL(也支持 MariaDB、Percona)的同步多主集群软件,...
本文将详细介绍 KAA 集群搭建的步骤,包括 MariaDB 集群搭建、MongoDB 集群搭建和 Zookeeper 集群搭建。 一、MariaDB 集群搭建 MariaDB 集群搭建是指使用 Galera 将多个 MariaDB 服务器组成集群,以提高系统的可用...
centos大数据分布式集群搭建,包含hadoop spark hbase hive solr elasticsearch redis zookeeper rocketmq mongodb mariadb storm kafka docker
mariadb集群搭建过程,详细讲解了每一个步骤,把相关指令都记录了下来,同时也把相关配置文件进行了保存
集群搭建完成后,还需要与研发部进行对接,确保应用能够正确连接到 MariaDB 集群,并配置合适的事务隔离级别、读写分离策略等,以适应业务需求。同时,定期监控集群状态,预防并处理可能出现的网络问题、数据不一致...
Galera是一个MySQL(也支持MariaDB,Percona)的同步多主集群软件,目前只支持InnoDB引擎。 主要功能: • 同步复制 • 真正的multi-master,即所有节点可以同时读写数据库 • 自动的节点成员控制,失效节点自动被...
搭建MariaDB Galera Cluster时,需要准备一个CentOS 6.0 64位的操作系统环境,并为Galera配置yum源。配置yum源的步骤包括创建一个名为`mariadb.repo`的文件并设置正确的baseurl,以便从镜像站点下载MariaDB软件包。 ...
在MariaDB Galera集群的搭建过程中,通常需要至少三个节点,以保证在单个节点故障时集群仍能正常运行。在这个实例中,我们有三个Ubuntu服务器,分别被配置为db1.mytest (192.168.1.13),db2.mytest (192.168.1.14) ...
以下是关于MySQL集群和MariaDB集群搭建的知识点详解: 1. **MySQL/MariaDB集群概念**:MySQL集群是一种高可用性和高性能的解决方案,它通过数据复制和分布式存储来提供冗余和负载均衡。MariaDB集群通常由多个节点...
MySQL Keeplived 主从集群环境搭建是一个用于高可用性和负载均衡的解决方案,它结合了MySQL的复制机制和Keepalived的故障切换功能。这个配置确保了在主数据库服务器出现故障时,可以从服务器能够无缝接管,保证数据...
本文将详细介绍如何在 CentOS 7 环境下搭建 MySQL 集群,包括整个搭建步骤及部分常见问题的解决方案。 #### 二、环境准备 - **操作系统**: CentOS 7.0 - **硬件配置**: 至少三台服务器 - MGM (Management Server):...
Galera Cluster是由Galera开发的同步多主复制集群软件,它可以与MySQL、MariaDB和Percona Server等数据库系统兼容。Galera的核心特性包括: - **同步复制**:确保所有节点的数据在写入时立即同步,避免数据丢失。 - ...
网站架构演变、LNP+Mariadb数据库分离、Web服务器集群 本资源摘要信息涵盖了网站架构演变、LNP+Mariadb数据库分离和Web服务器集群三个方面的知识点。 一、网站架构演变 网站架构演变是指网站从单机架构到集群架构...
本篇文章将详细讲解如何在离线环境下,利用Mycat和MySQL搭建一个读写分离的集群。Mycat是一款开源的分布式数据库中间件,它能够实现数据库的水平扩展,而MySQL则是广泛使用的开源关系型数据库。 首先,我们来了解...
本篇文档将详细介绍如何针对CDH5环境下的MariaDB进行配置优化,确保其能够稳定高效地支持大规模的数据处理需求。 #### 二、停用MariaDB服务 在进行任何配置更改之前,首先需要确保MariaDB服务处于关闭状态。可以...
Kubernetes上的MariaDB Galera 在Kubernetes StatefulSet定义中使用的MariaDB Galera集群的Docker映像示例。 基于官方的。 使用来自Kibernetes contrib的 util。 取决于服务对等wsrep_* ,会在Galera配置文件中更新...
MariaDB是一款开源的关系型...综上所述,MariaDB精简版为用户提供了一个轻量级、便捷且强大的数据库解决方案,无论是在开发环境中快速搭建测试数据库,还是在生产环境中追求高性能和高可用性,都是一个值得考虑的选择。