Redhat 6.5下MySQL5.6集群配置方法完整版

yizhihongxing

Redhat 6.5下MySQL5.6集群配置方法完整版

1. 环境准备

1.1 安装MySQL

首先需要为每个节点安装MySQL5.6,可以从MySQL官网下载对应的rpm文件进行安装。具体命令如下:

rpm -ivh MySQL-server-5.6.30-1.el6.x86_64.rpm
rpm -ivh MySQL-client-5.6.30-1.el6.x86_64.rpm

1.2 配置MySQL

安装完成后需要进行MySQL的基本配置,打开my.cnf文件,配置bind_address、datadir等参数,确保MySQL可以正常启动。

vi /etc/my.cnf

1.3 安装与配置Pacemaker

Pacemaker是一个用于构建高可用集群的工具,可以通过yum安装。具体命令如下:

yum install pacemaker pcs -y

安装完成后,需要配置pcs服务,并设置hacluster用户的密码。

systemctl start pcsd.service
systemctl enable pcsd.service
passwd hacluster

2. 配置集群

2.1 创建Cluster

在主节点上创建Cluster,类似的,其他节点需先配置pcs后再加入Cluster。具体命令如下:

pcs cluster auth node1 node2 node3
pcs cluster setup --name myCluster node1 node2 node3

2.2 配置IP资源

创建IP资源,并分别设置为Master节点启动,其他节点禁止启动。具体命令如下:

pcs resource create VirtualIP ocf:heartbeat:IPaddr2 ip=192.168.0.100 cidr_netmask=24 op monitor interval=10s
pcs resource master masterIP VirtualIP \
        master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true
pcs resource ban VirtualIP node1 node2 node3
pcs resource ban masterIP node1 node2 node3
pcs resource allow masterIP node1 op monitor interval=10s

2.3 配置MySQL资源

启动MySQL5.6的Master节点,并设置监听端口。

systemctl start mysqld.service
mysql -uroot -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;"
mysql -uroot -e "reset master;"
mysql -uroot -e "reset slave all;"

创建MySQL的Master节点资源,并设置监听端口并关联VirtualIP资源。

pcs resource create Master mysqld op monitor interval=30s timeout=30s \
        OCF_CHECK_LEVEL=1 OCF_CHECK_INTERVAL=10s \
        OCF_CHECK_RETRIES=5 master IP=192.168.0.100 port=3306 \
        config="/etc/my.cnf" additional_parameters="--innodb-write-io-threads=16" \
        binary="/usr/bin/mysqld_safe" pid="/var/run/mysqld/mysqld.pid" op start timeout=600s \
        op stop timeout=600s op promote timeout=300s op demote timeout=300s \
        op notify timeout=300s op monitor interval=30s timeout=20s \
        OCF_NOT_RUNNING_STOP_OPT="stop" \
        ordered=true
pcs constraint order promote VirtualIP then start Master-clone kind=Mandatory
pcs constraint order start VirtualIP then start Master-clone
pcs constraint colocation add Master-clone with VirtualIP same-node

2.4 配置Slave节点

创建2个Slave资源,同时开启GTID复制。

mysql -uroot -e "change master to master_user='repl_user', master_password='repl_password', \
                master_host='192.168.0.101', master_port=3306, master_use_gtid=current_pos;"
mysql -uroot -e "start slave;"
mysql -uroot -e "change master to master_user='repl_user', master_password='repl_password', \
                master_host='192.168.0.102', master_port=3306, master_use_gtid=current_pos;"
mysql -uroot -e "start slave;"

pcs resource create Slave1Mysql.mysql \
        binary="/usr/bin/mysqld_safe" pid="/var/run/mysqld/mysqld.pid" \
        config="/etc/my.cnf" datadir="/var/lib/mysql" \
        socket="/var/lib/mysql/mysql.sock" port="3306" \
        mysql="/usr/bin/mysql" user="mysql" \
        group="mysql" \
        master_ip="192.168.0.100" \
        password="password" \
        op start timeout=60s op stop timeout=60s \
        op promote timeout=60s op demote timeout=60s \
        op monitor interval=10s timeout=30s \
        op notify timeout=60s
pcs resource create Slave2Mysql.mysql \
        binary="/usr/bin/mysqld_safe" pid="/var/run/mysqld/mysqld.pid" \
        config="/etc/my.cnf" datadir="/var/lib/mysql" \
        socket="/var/lib/mysql/mysql.sock" port="3306" \
        mysql="/usr/bin/mysql" user="mysql" \
        group="mysql" \
        master_ip="192.168.0.100" \
        password="password" \
        op start timeout=60s op stop timeout=60s \
        op promote timeout=60s op demote timeout=60s \
        op monitor interval=10s timeout=30s \
        op notify timeout=60s

pcs constraint order promote VirtualIP then start Slave1Mysql-clone kind=Mandatory
pcs constraint order start VirtualIP then start Slave1Mysql-clone
pcs constraint colocation add Slave1Mysql-clone with VirtualIP same-node
pcs constraint order promote VirtualIP then start Slave2Mysql-clone kind=Mandatory
pcs constraint order start VirtualIP then start Slave2Mysql-clone
pcs constraint colocation add Slave2Mysql-clone with VirtualIP same-node

3. 集群管理

3.1 启动集群

已创建好的Cluster资源可以通过以下命令启动:

pcs cluster start --all

3.2 停止节点资源

停止节点资源可以通过以下命令进行:

pcs resource disable node1

3.3 恢复节点资源

恢复节点资源可以通过以下命令进行:

pcs resource enable node1

3.4 查看Cluster状态

查看Cluster的状态,可以通过以下命令进行:

pcs status

4. 示例说明

4.1 查看MySQL节点状态

可以通过以下命令查看MySQL节点状态,以node1为例:

pcs status | grep 'node1' | grep 'Starting\|Running\|Stopped'

如果输出为Starting或Running,则说明节点的MySQL服务正常运行。如果输出为Stopped,则说明节点的MySQL服务已经停止。

4.2 启动Master节点资源

可以通过以下命令启动Master节点资源:

pcs resource enable Master-clone

启动成功后,可以通过以下命令查看节点状态:

pcs status | grep 'Master-clone' | grep 'Started\|Stopped'

如果输出为Started,则表示Master节点资源已经启动。如果输出为Stopped,则表示Master节点资源没有成功启动,可能需要检查是否有其他资源因为依赖关系无法启动。

以上就是在Redhat 6.5下MySQL5.6集群配置方法完整版的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Redhat 6.5下MySQL5.6集群配置方法完整版 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • CentOS 8.2部署CouchDB 3.3数据库的方法

    下面我将为您详细介绍“CentOS 8.2部署CouchDB 3.3数据库的方法”的完整攻略。 准备工作 在部署CouchDB 3.3之前,我们需要先进行一些准备工作,以下是准备工作的步骤。 安装依赖 在安装CouchDB之前,我们需要先安装一些依赖,可以使用以下命令在CentOS 8.2系统上安装依赖。 sudo dnf install epel-rele…

    database 2023年5月22日
    00
  • Elasticsearch 和 MS SQL 的区别

    Elasticsearch和MS SQL是两种不同类型的数据库,具有不同的特点和用途。以下是它们之间的区别和相应的实例说明: 数据结构: Elasticsearch是一种搜索引擎,并且支持非结构化数据,它使用文档对象模型(DOM)存储数据。Elasticsearch可以自动创建索引,并且支持实时搜索和分析。 举个例子:在Elasticsearch中存储一份文…

    database 2023年3月27日
    00
  • 一个多表查询的SQL语句

    下面是详细讲解“一个多表查询的SQL语句”的完整攻略。 完整攻略 Step 1:确定数据表的关系 在进行多表查询之前,我们需要先确定所涉及的数据表之间的关系,即它们之间的连接方式。 常见的数据表连接方式有以下三种: 内连接(INNER JOIN):返回匹配两个表中指定列并且存在于两个表中的行。 外连接(OUTER JOIN):返回匹配两个表中指定列的所有行,…

    database 2023年5月21日
    00
  • LINUX启动/重启/停上MYSQL的命令(详解)

    LINUX启动/重启/停止MYSQL的命令详解 概述 MySQL是一个开放源码的关系型数据库管理系统,常用于web应用程序开发,是LAMP(Linux+Apache+MySQL+PHP/Python/Perl)中的重要组成部分。在Linux系统中,正确的启动、重启和停止MySQL是保证数据库正常工作的基础。 启动MySQL 在启动MySQL之前,需要检查My…

    database 2023年5月22日
    00
  • Spark SQL小文件问题处理

    Spark SQL是大数据处理中非常常用的工具,它可以通过基于Hadoop的分布式计算架构,快速地处理大规模的数据。但是在实际的应用中,我们常常会遇到处理小文件的问题。Spark SQL处理小文件时会产生大量的小任务,导致任务调度和执行效率非常低。本文将从以下几个方面详细讲解Spark SQL小文件问题处理的完整攻略。 1. 问题分析 Spark SQL小文…

    database 2023年5月21日
    00
  • Linux安装单机版Redis的完整步骤

    下面是Linux安装单机版Redis的完整步骤: 步骤一:准备工作 首先打开终端,升级apt-get: sudo apt-get update 安装build-essential和tcl库(tcl库用于测试): sudo apt-get install build-essential sudo apt-get install tcl 步骤二:下载Redis并…

    database 2023年5月22日
    00
  • MySQL5.7.03 更换高版本到MySQL 5.7.17安装过程及发现问题解决方案

    MySQL5.7.03 更换高版本到MySQL 5.7.17安装过程及发现问题解决方案 背景 当我们需要进行数据库升级或者迁移时,需要将原有的版本更换到目标版本。本文将针对MySQL版本升级做出详细的说明。 步骤1:备份数据 在进行任何数据库升级操作之前,一定要先备份数据,避免数据丢失。可以使用以下命令进行备份: mysqldump -u <usern…

    database 2023年5月22日
    00
  • PHP使用PDO抽象层获取查询结果的方法示例

    下面是关于“PHP使用PDO抽象层获取查询结果的方法示例”的完整攻略,包括两条示例说明。 PDO抽象层介绍 PDO(PHP Data Objects)是一种PHP操作数据库的抽象层,使得PHP程序能够标准化地访问多种关系型数据库(如MySQL、SQLite、Oracle等),并提供了一组统一的API,方便程序员进行数据库操作。 PDO抽象层提供的主要类有: …

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部