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

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日

相关文章

  • SQL 以指定顺序返回查询结果

    要指定SQL查询结果的返回顺序,可以使用ORDER BY子句。ORDER BY子句用于按照一个或多个列中的值对查询结果进行排序。下面是关于如何使用ORDER BY子句来指定查询结果的完整攻略。 1. 语法 SELECT 列名 FROM 表名 ORDER BY 列1 ASC/DESC, 列2 ASC/DESC, …; 其中,SELECT语句用于指定要查询的…

    database 2023年3月27日
    00
  • Statement 和 CallableStatement 的区别

    下面是 Statement 和 CallableStatement 的区别的完整攻略: 1. Statement 和 CallableStatement 是什么? Statement 是 JDBC 中用于执行 SQL 语句的接口,它是所有 SQL 语句执行器的公共父接口。它的主要作用是用于向数据库发送静态 SQL 语句并返回执行结果。 CallableSta…

    database 2023年3月27日
    00
  • php常用ODBC函数集(详细)

    PHP常用ODBC函数集详解攻略 ODBC介绍 Open Database Connectivity(ODBC)是一种为访问不同的数据库提供一个标准化的应用程序接口(API)的技术。ODBC驱动程序来自于不同的数据库厂商,并提供一个软件层,在数据库和应用程序之间建立一个连接。 使用ODBC的好处是可以让应用程序更容易地实现对多种不同的数据库进行访问,而不必来…

    database 2023年5月22日
    00
  • .net core实用技巧——将EF Core生成的SQL语句显示在控制台中

    下面是详细讲解“.net core实用技巧——将EF Core生成的SQL语句显示在控制台中”的完整攻略。 什么是EF Core? Entity Framework Core(EF Core)是一个跨平台开源ORM框架,可用于开发.NET平台上的应用程序。EF Core具有轻量级、可扩展性、高性能等优点,是.NET生态中最受欢迎的ORM框架之一。 为什么要显…

    database 2023年5月21日
    00
  • Python操作ES的方式及与Mysql数据同步过程示例

    下面是详细讲解Python操作ES的方式及与Mysql数据同步过程的完整攻略。 Python操作ES的方式 安装elasticsearch-py库 使用pip安装elasticsearch-py库: pip install elasticsearch 连接Elasticsearch 连接Elasticsearch的方式: from elasticsearch…

    database 2023年5月22日
    00
  • SQL面试题:求时间差之和(有重复不计)

    SQL面试题:求时间差之和(有重复不计)是一个常见的面试题目,下面我们将讲解如何解决这个问题。 问题描述 我们给定了一张表,表中有两个字段start_time和end_time,这两个字段均为时间类型,我们需要求出两个时间字段的差并将它们的和作为结果返回,如果有重复的记录,则只计算一次。 解题思路 我们可以通过两个方法来解决这个问题。一是使用子查询,二是使用…

    database 2023年5月21日
    00
  • MySQL with语句讲解

    MySQL的WITH语句是一种基于查询执行前的预处理方式,可以以子查询为基础,使用别名并组合这些子查询,在一个查询中构建一个临时表,然后使用这个临时表进行后续操作。WITH语句可以避免数据冗余和混乱,提高查询效率,是优化MySQL查询相当重要的工具之一。下面是WITH语句的完整攻略。 1. 语句结构 WITH语句的语法结构如下: WITH [RECURSIV…

    database 2023年5月21日
    00
  • MySQL函数讲解(MySQL函数大全)

    MySQL函数讲解(MySQL函数大全) 什么是MySQL函数 MySQL函数是指那些预先定义好的,可以在SQL语句中使用的函数,用于完成一些特定的操作。MySQL提供了大量的内置函数,涵盖了字符串操作、日期处理、数值计算等多种功能,开发者可以根据自己的需求选择合适的函数。 常用MySQL函数 CONCAT:将多个字符串拼接成一个字符串 mysql SELE…

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