`
maosheng
  • 浏览: 565311 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CentOS 6.3 安装 mysql-cluster-gpl-7.4.7

阅读更多
什么是MySQL集群

MySQL集群是一个无共享的(shared-nothing)、分布式节点架构的存储方案,其目的是提供容错性和高性能。

数据更新使用读已提交隔离级别(read-committed isolation)来保证所有节点数据的一致性,使用两阶段提交机制(two-phased commit)保证所有节点都有相同的数据(如果任何一个写操作失败,则更新失败)。

无共享的对等节点使得某台服务器上的更新操作在其他服务器上立即可见。传播更新使用一种复杂的通信机制,这一机制专用来提供跨网络的高吞吐量。

通过多个MySQL服务器分配负载,从而最大程序地达到高性能,通过在不同位置存储数据保证高可用性和冗余。

1.查询(Sql)结点(SQL node—下图对应为 mysqld):分布式数据库。包括自身数据和查询中心结点数据
2.数据结点(Data node – ndbd):集群共享数据(内存中)
3.管理服务器(Management Server – ndb_mgmd):集群管理 SQL node,Data node








MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。

MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster 。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。

MySQL Cluster 由一组计算机构成,每台计算机上均运行着多种进程,包括MySQL服务器,NDB Cluster 的数据节点,管理服务器,以及(可能)专门的数据访问程序。

所有的这些节点构成一个完成的MySQL集群体系。数据保存在“NDB存储服务器”的存储引擎中,表(结构)则保存在“MySQL服务器”中。应用程序通过“MySQL服务器”访问这些数据表,集群管理服务器通过管理工具(ndb_mgmd)来管理“NDB存储服务器”。

“NDB” 是一种“内存中”的存储引擎,它具有可用性高和数据一致性好的特点。

    管理(MGM)节点:这类节点的作用是管理MySQL Cluster内的其他节点,如提供配置数据、启动并停止节点、运行备份等。由于这类节点负责管理其他节点的配置,应在启动其他节点之前首先启动这类节点。MGM节点是用命令“ndb_mgmd”启动的。

    数据节点:这类节点用于保存 Cluster的数据。数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点。不过没有必要设置多个副本。数据节点是用命令“ndbd”启动的。

    SQL节点:这是用来访问 Cluster数据的节点。对于MySQL Cluster,客户端节点是使用NDB Cluster存储引擎的传统MySQL服务器。通常,SQL节点是使用命令“mysqld –ndbcluster”启动的,或将“ndbcluster”添加到“my.cnf”后使用“mysqld”启动。

    管理服务器(MGM节点)负责管理 Cluster配置文件和 Cluster日志。 Cluster中的每个节点从管理服务器检索配置数据,并请求确定管理服务器所在位置的方式。当数据节点内出现新的事件时,节点将关于这类事件的信息传输 到管理服务器,然后,将这类信息写入 Cluster日志。


一、环境清理以及安装:

1. mysql旧版本清除:

首先使用如下命令来清理之前操作系统自带的mysql安装:
# yum -y remove mysql
然后使用如下命令:
# rpm -qa | grep mysql*
对于找到的2个剩余mysql包,请按照如下的命令格式予以删除:
# rpm -e --nodeps mysql-libs-5.1.61-4.el6.x86_64
# rpm -e --nodeps mysql-connector-odbc-5.1.5r1144-7.el6.x86_64

2. mysql cluster版本安装:

从http://mysql.mirror.kangaroot.net/Downloads/MySQL-Cluster-7.4/ 下载对应的安装软件
将mysql-cluster-gpl-7.4.7-linux-glibc2.5-x86_64.tar.gz放到某个目录下下面,并且执行如下命令解压:
# tar -zxvf mysql-cluster-gpl-7.4.7-linux-glibc2.5-x86_64.tar.gz

拷贝到安装目录
# cp -r ./mysql-cluster-gpl-7.4.7-linux-glibc2.5-x86_64 /usr/local/mysql
# cd /usr/local/mysql

创建文件夹(分如下3个类来创建对应的文件夹)

数据节点:
# mkdir -p /var/lib/mysql/data

管理节点:
# mkdir /var/lib/mysql-cluster     ## SQL节点:可不用  文件夹授权

查询节点进程DIR:
# mkdir /var/run/mysqld             
 
使用如下的命令来变更权限保证可写入:
# chmod -R 1777 /var/lib/mysql
# chmod -R 1777 /var/run/mysqld
# chmod -R 1777 /var/lib/mysql-cluster


3. 添加mysql用户组及用户,修改相关目录权限:

# groupadd mysql

# useradd mysql -g mysql

# cd /usr/local

# chown -R mysql:mysql mysql


4. 配置管理节点:

管理节点(MGMD)上配置

# cd /var/lib/mysql-cluster
# vi config.ini

[computer]
Id=mgr-server-01
HostName=172.16.10.70                     
[mgm default]
datadir=/var/lib/mysql-cluster
[mgm]
HostName=172.16.10.70                    
NodeId=60
ExecuteOnComputer=mgr-server-01
PortNumber=1186
ArbitrationRank=2
[ndbd default]
NoOfReplicas=2
DataMemory=8G
IndexMemory=2G
MaxNoOfTables = 1024
MaxNoOfAttributes = 5000000
MaxNoOfOrderedIndexes = 10000
[ndbd]
HostName=172.16.10.70                       
DataDir=/var/lib/mysql
NodeId=1
[ndbd]
HostName=172.16.10.71                       
DataDir=/var/lib/mysql
NodeId=2
[mysqld]
HostName=172.16.10.70                     
NodeId=81
[mysqld]
HostName=172.16.10.71                      
NodeId=82

5. 配置数据节点和查询节点:

数据节点(NDBD)和查询节点(MYSQLD)上配置

# vi /etc/my.cnf

[client]
socket=/var/lib/mysql/mysql.sock
[mysqld]
max_connections=100
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
ndbcluster
ndb-connectstring=172.16.10.70
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql_cluster]
ndb-connectstring=172.16.10.70


6. 安装数据库脚本:

# scripts/mysql_install_db --user=mysql

注意:如果执行以上命令报如下错误:

      Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

      执行如下命令安装libaio

      # yum install -y libaio


二、SQL Cluster初次启动命令以及用户密码更改调整:(请严格按照次序启动)

切换用户:
# su - mysql

执行初次启动前请先确认 将两台机器的防火墙关闭(service iptables stop 或者 设定 防火墙端口可通,两个端口即通讯端口1186、数据端口3306 )

初次启动管理节点命令:【管理节点(MGMD)上执行如下命令】
# bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

启动数据节点命令:【数据节点(NDBD) 上执行如下命令】             
# bin/ndbd --initial

注意:这个参数(--initial)只能在第一次启动DataNode节点时使用,因为--initial参数会删除一些ndbd 实例先前创建的所有文件,再次启动只需 /usr/local/mysql/bin/ndbd 即可,不要带--initial参数。

启动查询节点命令:【查询节点(MYSQLD)上执行如下命令】           
# bin/mysqld_safe --defaults-file=/etc/my.cnf --explicit_defaults_for_timestamp --skip-grant-tables &

如果一切正常,使用如下命令将Management console开启:【管理节点(MGMD)上执行如下命令】  
# bin/ndb_mgm

输入: show
ndb_mgm> show






# bin/mysqladmin -uroot password agdis

注意:几台装有MySQL查询节点(MYSQLD)的服务器皆需要执行一遍上述命令


三、Cluster效果测试:

# bin/mysql -u root -p

输入对应的密码后登陆到系统

mysql> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| clustertest        |
| data               |
| mysql              |
| ndb_1_fs           |
| ndbinfo            |
| performance_schema |
| test               |
+--------------------+
8 rows in set (0.00 sec)


按照如下命令开始新建database;

mysql>create database clustertest;
mysql>use clustertest;
mysql>CREATE TABLE testtable(Count INT) ENGINE=NDBCLUSTER;

特别注意:
     只有使用了NDBCluster引擎的表才会执行同步操作,因此特别需要在上述表加入这个后缀。
     每个NDB表必须有一个主键。如果在创建表时用户未定义主键,NDB Cluster存储引擎将自动生成隐含的主键。





四、关闭Cluster:(需要严格按照次序执行)

切换用户:
# su - mysql

关闭查询节点:【查询节点(MYSQLD)上执行如下命令】
# bin/mysqld stop  (SQL节点可以用mysqladmin -uroot shutdown或别的方式关闭。)

在管理节点上执行:【管理节点(MGMD)上执行如下命令】
# bin/ndb_mgm -e shutdown

将安全的关闭管理节点和查询节点。

关闭后使用如下的进程检测命令查看一下是否退出来了:
# pgrep mysqld
# ps aux | grep ndbd


如果没有,找到对应的pid进行kill 操作即可。

五、再次启动Cluster方案:

切换用户:
# su - mysql

启动整个cluster的次序:

启动管理节点命令:【管理节点(MGMD)上执行如下命令】
# bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

启动数据节点命令:【数据节点(NDBD) 上执行如下命令】             
# bin/ndbd

启动查询节点命令:【查询节点(MYSQLD)上执行如下命令】           
# bin/mysqld_safe --defaults-file=/etc/my.cnf --explicit_defaults_for_timestamp --skip-grant-tables  &

六、杂记:

防火墙策略调整:
# iptables -A INPUT -s 192.168.100.0/24 -i eth2 -p tcp -m tcp -j ACCEPT

修改密码方法一:

# mysqladmin -u root password root (更改密码)            (没有新密码前执行)
# mysqladmin -u root -p 'xxxxxx' password 'NewPassword';  (安装完毕后启动mysqld执行)

修改密码方法二:

# UPDATE mysql.user SET Password=PASSWORD('Password01!') WHERE User='root';
# FLUSH PRIVILEGES;

修改密码方法三:

让mysql以不带安全控制的方式启动:
# bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking;
然后再用前面2种方法修改密码


  解决MySQL客户端工具连接SQL Node出现1130的异常,在MySQL控制台下执行:

 如果你想myuser使用mypassword从任何主机连接到mysql服务器的话。

mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

mysql>FLUSH   PRIVILEGES;

 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码的话。

mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

mysql>FLUSH   PRIVILEGES;

 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码的话。

mysql>GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

mysql>FLUSH   PRIVILEGES;






  • 大小: 12.2 KB
  • 大小: 18.9 KB
  • 大小: 44.2 KB
  • 大小: 66.9 KB
分享到:
评论

相关推荐

    CentOS-6.3-i386-bin-DVD1-DVD2.iso下载地址

    Txt文件中包含 CentOS-6.3-i386-bin-DVD1.iso 和 CentOS-6.3-i386-bin-DVD2.iso 的官网下载地址 和百度网盘下载地址

    CentOS-6.3-i386-bin-DVD1.iso 镜像文件

    CentOS-6.3-i386-bin-DVD1.iso 镜像文件 用于虚拟机系统安装。

    CentOS-6.3-i386-bin-DVD1to2.torrent

    CentOS 团员已经发布了 CentOS 6 系列的第三个版本,CentOS 6.3 基于上游的红帽 RHEL 6.3。CentOS 是一个企业级的 Linux 发行版本,CentOS 是 RHEL(Red Hat ...CentOS-6.3-i386-bin-DVD1to2.torrent(包含第1、2张ISO)

    CentOS 6.3下mysql的卸载与安装全过程.

    本文将详细介绍在CentOS 6.3上如何卸载旧版本的MySQL并安装新版本的过程。 首先,我们来了解一下卸载MySQL的步骤: 1. **检查已安装的MySQL组件**: 使用`rpm -qa | grep -i mysql`命令可以列出所有与MySQL相关的...

    CentOS 7 安装 MySQL

    CentOS 7 安装 MySQL

    centOS-6.3安装Mysql集群

    ### CentOS 6.3 安装 MySQL 集群详细指南 #### 一、环境概述与准备工作 在本文档中,我们将详细介绍如何在 CentOS 6.3 系统上搭建 MySQL 集群。该集群易于搭建且基于内存运行,不需要共享存储,非常适合对性能有较...

    CentOS 6.3安装文档

    4. CentOS-6.3-i386-netinstall.iso - 通过网络安装,适合没有 DVD 驱动器或需要无人值守安装的情况。 安装环境通常是在虚拟机软件(如 VMware 或 VirtualBox)中搭建。确保分配足够的虚拟硬件资源,如内存、CPU 和...

    CentOS安装Mysql_Cluster集群

    - **安装环境**: CentOS-6.3。 - **安装方式**: 源码编译安装。 - **软件名称**: mysql-cluster-gpl-7.4.16-linux-glibc2.12-x86_64.tar.gz。 - **下载命令**: 使用`wget --no-check-certificate ...

    CentoS-6.3-DVD1to2

    本资源为Linux版本操作系统CentOS-6.3 DVD-1-DVD-2,由于文件共有4.5G左右,所以该处为下载地址链接,可选择用迅雷,QQ旋风等BT种子下载器下载,开始下载前请仔细阅读压缩包内的说明等文档。

    CentOS 6.3 安装VMTools

    ### CentOS 6.3 中安装 VMTools 的详细步骤与注意事项 #### 一、VMTools简介 VMTools 是由 VMware 公司开发的一款增强工具包,主要用于改善 VMware 虚拟机内的性能,并加强宿主机与虚拟机之间的交互能力。通过安装 ...

    CentOS6.3源码安装mysql5.6方法.pdf

    在本文中,我们将详细讨论如何在CentOS 6.3上通过源码来安装MySQL 5.6.10。这个过程涵盖了从下载源码到配置、编译和启动MySQL服务的所有步骤。 首先,你需要访问MySQL的官方网站...

    centOS 6.5 安装 mysql-5.7及其Mysql5.7设置密码

    centOS 6.5 安装 mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

    centos下hive连接mysql驱动 ,mysql-connector-java-8.0.26-1.el7.noarch.

    centos 下hive连接mysql驱动 ,mysql-connector-java-8.0.26-1.el7.noarch. 使用方法: 1.下载本rpm文件后,上传至你的服务器(虚拟机) 2. rpm -ivh mysql-connector-java-8.0.26-1.el7.noarch进行安装 3.安装完成...

    centos 6 安装 mantisbt-1.2.8 -- centos 7 安装 mantisbt-2.12.0.zip

    内容: 1、centos 6 安装 mantisbt-1.2.8 ; 2、 centos 7 安装 mantisbt-2.12.0.zip 3、mantisbt-2.12.0.tar.gz包; 4、MySQL-5.5.59-1.el7.x86_64.rpm-bundle.tar包

    【亲测】MySQL-cluster集群搭建 v1.0

    3. 安装 MySQL Cluster:mv mysql-cluster-gpl-7.4.17-linux-glibc2.12-x86_64 mysql /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql chown -R mysql:mysql /usr/local/mysql ...

    CentOS 6.3 安装详细教程

    - **32位**:`CentOS-6.3-i386-bin-DVD1.iso` - **64位**:`CentOS-6.3-x86_64-bin-DVD1.iso` - **下载地址**: - **32位**:`...

    CentOS6.3安装nginx操作指南

    **CentOS 6.3 安装 Nginx 操作指南** 在 CentOS 6.3 上安装 Nginx 是一项常见的任务,Nginx 是一个高性能的 Web 和反向代理服务器,以其轻量级、高效的特性深受开发者和系统管理员的喜爱。本指南将详细解释如何在 ...

    CentOS 6.3安装(超级详细图解教程

    CentOS 6.3安装(超级详细图解教程) 相当齐全

    CentOS 6.3安装(超级详细图解教程)

    - **第一个镜像**:用于安装系统,例如 `CentOS-6.3-i386-bin-DVD1.iso`(32位)或 `CentOS-6.3-x86_64-bin-DVD1.iso`(64位)。 - **第二个镜像**:包含额外的软件包,非必需。 #### 三、硬件要求 - **内存**:...

Global site tag (gtag.js) - Google Analytics