配置mysql簇集群的个人心得。
安装准备:
1.所需软件。
管理节点:
MySQL-Cluster-gpl-management-7.1.9a-1.rhel5.i386.rpm
MySQL-Cluster-gpl-tools-7.1.9a-1.rhel4.i386.rpm
sql节点:
MySQL-Cluster-gpl-server-7.1.9a-1.rhel5.i386.rpm
MySQL-Cluster-gpl-client-7.1.9a-1.rhel5.i386.rpm
存储节点:
MySQL-Cluster-gpl-storage-7.1.9a-1.rhel4.i386.rpm
2.前提条件
关闭所有集群机器的防火墙
在所有mysql集群的机器中配置/etc/hosts文件将所有机器的ip和机器名称写进去。并将所有的集群机器加到同一个组群中。
添加到mysql组中: groupadd mysql
添加用户mysql: useradd -g mysql mysql
一 安装和配置管理节点
1. 安装准备
创建文件夹:mkdir /var/lib/mysql/data表示存储节点文件夹
mkdir /var/lib/mysql-cluster表示管理节点文件夹
赋予权限:chmod -R 1777 /var/lib/mysql
chmod -R 1777 /var/lib/mysql-cluster
2. 安装管理节点软件
rpm -ivh MySQL-Cluster-gpl-management-7.1.9a-1.rhel5.i386.rpm
rpm -ivh MySQL-Cluster-gpl-tools-7.1.9a-1.rhel4.i386.rpm
3. 配置管理节点
在mysql目录下新建mysql-cluster文件夹,进入到mysql-cluster,新建config.ini
[NDBD DEFAULT]
NoOfReplicas=2 #备份,副本,这样的话2台数据节点的数据就会同步
DataMemory=200M
IndexMemory=100M
[TCP DEFAULT]
portnumber=2202 连接端口号,与存储节点和sql节点对应
[NDB_MGMD] #管理节点
id=11
hostname=管理节点的ip地址
datadir=/var/lib/mysql-cluster
[NDBD] #数据节点
id=21
hostname=对应数据节点的IP地址
datadir=/var/lib/mysql/data
[NDBD] #数据节点
id=22
hostname=对应数据节点的IP地址
datadir=/var/lib/mysql/data
可以有多个ndbd几点,只需要在此处添加[NDBD]注册即可
[MySQLD] #sql节点
id=31
hostname=对应sql节点的ip地址
[MySQLD] #sql节点
id=32
hostname=对应sql节点的ip地址
可以有多个ndbd几点,只需要在此处添加[MySQLD]注册即可
4. 启动管理节点
ndb_mgmd -f /var/lib/mysql-cluster/config.ini
5. 管理工具
使用命令ndb_mgm进入管理控制台,输入show可以显示集群设备的连接信息。
二 安装配置ndbd节点
1. 安装软件
rpm -ivh MySQL-Cluster-gpl-storage-7.1.9a-1.rhel4.i386.rpm
2. 配置ndbd节点
在/ect/my.cnf文件中添加信息
vi /ect/my.cnf
[mysqld]
max_connections = 100 最大连接数
slow_query_log = /var/lib/mysql-cluster/slow_query.log
long_query_time = 1
datadir = /var/lib/mysql-cluster
ndbcluster
ndb-connectstring="nodeid=id,ip" 其中id为在管理节点中配置的本存储节点ip对应的id,后面的ip地址为管理节点的ip地址
[mysql_cluster]
ndb-connectstring="nodeid=id,ip" 其中id为在管理节点中配置的本存储节点ip对应的id,后面的ip地址为管理节点的ip地址
3. 启动ndbd节点
第一次启动使用命令 ndbd -initial
以后使用ndbd即可
三 安装配置sql节点
1. 安装软件
rpm -ivh MySQL-Cluster-gpl-server-7.1.9a-1.rhel5.i386.rpm
rpm -ovh MySQL-Cluster-gpl-client-7.1.9a-1.rhel5.i386.rpm
2. 配置sql节点
运行下面命令:
cp my-medium.ini /etc/my.cnf 使用 find / -name medium.cnf 查找到medium.cnf文件的位置,然后使用复制
1>my-small.ini是为了小型数据库而设计的。不应该把这个模型用于含有一些常用项目的数据库。
2>my-medium.ini是为中等规模的数据库而设计的。如果你正在企业中使用RHEL,可能会比这个操作系统的最小RAM需求(256MB)明显多得多的物理内
存。由此可见,如果有那么多RAM内存可以使用,自然可以在同一台机器上运行其它服务。
3>my-large.ini是为专用于一个SQL数据库的计算机而设计的。由于它可以为该数据库使用多达512MB的内存,所以在这种类型的系统上将需要至少
1GB 的RAM,以便它能够同时处理操作系统与数据库应用程序。
4>my-huge.ini是为企业中的数据库而设计的。这样的数据库要求专用服务器和1GB或1GB以上的RAM。
vi /etc/my.cnf
在my.cnf文件的后面添加
[MYSQLD]
basedir = /usr
datadir = /usr/local/mysql/data/
user = mysql
socket = /tmp/mysql.sock
ndbcluster
ndb-connectstring=="nodeid=id,ip" 其中id为在管理节点中配置的本存储节点ip对应的id,后面的ip地址为管理节点的ip地址
[MYSQL_CLUSTER]
ndb-connectstring=="nodeid=id,ip" 其中id为在管理节点中配置的本存储节点ip对应的id,后面的ip地址为管理节点的ip地址
3.赋予权限
创建 /usr/local/mysql/data 目录文件夹
chomd 775 /usr/local/mysql/data
赋予数据库存取权限
mysql_install_db /usr/local/mysql/data 使用find / -name mysql_install_db 查找到mysql_install_db 然后使用此命令
mysql_install_db 重新初始化mysql
4.启动mysqld
使用命令 mysqld_safe
四 测试集群
1.管理节点中输入ndb_mgm进入管理控制台,输入show,在显示的信息如下图所示,即表示所有连接正常。
________________________________________________________________________
| [ndbd(NDB)] 2 node(s)
| id=21 @192.168.41.52 (mysql-5.1.51 ndb-7.1.9, Nodegroup: 0, Master)
| id=22 @192.168.41.42 (mysql-5.1.51 ndb-7.1.10, Nodegroup: 0)
|
| [ndb_mgmd(MGM)] 1 node(s)
| id=11 @192.168.41.240 (mysql-5.1.51 ndb-7.1.10)
|
| [mysqld(API)] 2 node(s)
| id=31 @192.168.41.51 (mysql-5.1.51 ndb-7.1.9)
| id=32 @192.168.41.55 (mysql-5.1.51 ndb-7.1.9)
|________________________________________________________________________
2.在sql1节点中登录mysql -u root
然后创建一个数据库 sql1test, 进入sql1test数据库创建一张表test,然后在里面添加几条数据。
3.在另一个sql节点中登录mysql -u root
查看数据库,并找到sql1test数据库,进入实用select语句查询test表中的记录,显示的记录正常。
4.断开一个ndbd数据存储节点
在sql1节点中查询test表中的记录正常。
上面描述的信息正常则集群已经搭起来了。
五 遇到的问题
1.sql节点启动失败,提示不存在 /var/lib/mysql/mysql.sock文件。
打开/etc/my.cnf修改[client]下的socket值,使得此值与[MYSQLD]下的socket值相同。
2.错误信息无法找到errmsg.sys文件。
修改[MYSQLD]下的basedir值,使用find / -name errmsg.sys查找到此文件,然后修改basedir值使其能正确的指到errmsg.sys文件。
3.使用mysql命令进入数据库控制台中,无法实现数据库的集群模式。
使用mysql -u root 登录到数据库控制台即可。
4.创建的表无法在另一个sql节点的mysql控制台中查看到。
使用命令 create table [table name] () engine=ndbcluster;创建数据库表即可实现
分享到:
相关推荐
综上所述,Mysql簇集群配置涉及软件包准备、环境配置、目录权限设置、软件安装、集群配置、服务启动与监控等多个环节,每一个步骤都需精心操作,以确保集群的稳定运行和高效性能。通过对以上流程的深入了解和实践,...
MySQL簇,也称为MySQL Cluster,是一种高可用性、高性能的数据库解决方案,主要设计用于处理大量数据并提供实时访问。在MySQL Cluster中,数据被分散在多个节点上,以实现负载均衡和容错能力,确保即使在单个节点...
- **配置NDB Cluster**:NDB Cluster是MySQL簇的主要组成部分。 - **启动集群**:启动集群中的各个节点。 #### 第10章 用源代码搭建LAMP环境 ##### 10.1 构建安装环境 - **系统准备**:选择合适的Linux发行版。 -...
管理节点负责集群的配置和监控,数据节点存储和处理数据,SQL节点接收SQL查询并处理结果。 3. **性能优化** - **数据分区**:通过合理的数据分区策略,可以提高查询效率,减少跨节点通信。 - **内存配置**:优化...
25-MySQL主从集群配置.wmv 26-Binlog-Format的区别.wmv 27-主主复制.wmv 28-主主复制时的主键冲突解决.wmv 29-被动主主复制.wmv 30-MySQL Proxy完成负载均衡与读写分离.wmv 31-Partition分区.wmv 32-事务讲解.wmv
- 需要安装好Hadoop环境,并且确保Hadoop集群可以正常运行。 - 下载并配置HBase,包括配置`hbase-site.xml`等配置文件,以适应Hadoop环境。 - 启动HBase集群,包括HMaster和RegionServer等组件。 2. **使用HBase...
10. **扩展性与高可用性**:MySQL的集群、复制、分区等技术,以及如何设计和实现高可用和可扩展的数据库解决方案。 通过阅读《Understanding MySQL Internals》这本书,读者可以深入了解MySQL的内部工作原理,从而...
【MySQL篇】 MySQL是世界上最流行的开源关系型数据库管理系统之一,其设计目标是处理大量数据,同时提供高并发和高可用性。以下是一些关键知识点: 1. **SQL语句执行流程**:当提交一个SQL语句时,MySQL会经历解析...
通过学习和掌握这些知识点,开发者可以有效地利用MySQL_Simp.CHM文档中的信息,在分布式计算环境中构建和管理高可用的MySQL集群,以处理大规模的并发请求和大数据量。这不仅提升了系统的处理能力,还增强了整体的...
【大数据运维技术——HBase组件安装与配置】 HBase,全称为Hadoop Database,是一种基于Hadoop生态系统的分布式、高性能、非关系型数据库,属于NoSQL数据库家族的一员。HBase的发展始于2007年,由Powerset公司创建...
在本项目中,我们主要探讨了如何利用Amazon Web Services(AWS)中的几个核心服务,包括Amazon Elastic Compute Cloud(EC2)、MySQL数据库服务以及Redis缓存,来构建一个高性能的集群环境,并实施K-means聚类算法。...
6. 集群设计时,SQL节点和数据节点的配置应考虑计算性能和网络带宽。 除了上述三种,MySQL还有Memory、Merge、CSV、Archive等其他存储引擎,它们各有特色,例如Memory存储引擎的所有数据都在内存中,适用于临时表;...
主要应用在社交网络中,优势是利用图结构相关算法,劣势是需要对整个图做计算得出结果,不容易做分布式的集群方案。 ### Redis介绍 Redis是一种开源的高性能键值对(key-value)数据库,由C语言编写。Redis支持多种...
与传统的关系型数据库管理系统(RDBMS)如MySQL、Oracle、DB2和SQL Server等不同,HBase是一个NoSQL数据库。它采用的是列式存储而非行式存储,没有固定的表结构定义,支持的数据类型为字节数组(byte[]),并且对...
- **重要的配置参数**:`key_buffer`用于缓存MyISAM索引块。 - **状态参数**: - `key_read_requests`:表示从缓存中读取索引块的请求次数; - `key_read`:表示实际从磁盘读取索引块的次数。 - **表的存储结构**...
需要注意的是,Redis集群的配置较为复杂,需要考虑分片、故障转移等因素。 #### 八、Java客户端Jedis Jedis是一个用于连接Redis集群的Java客户端库,它提供了丰富的API来操作Redis中的数据。通过Jedis,开发者可以...
它的框架是基于对工作由opdemand乡亲我适合我的项目旨在建立其了自动的集群MySQL服务器,然后慢慢演变成这样。 我提供了一个小示例hello world python应用程序,该应用程序仅读取配置文件并在其中打印出字段的值。...
idea本地调试leetcode my-sc 目录结构 ...介绍zookeeper的命名服务,配置管理,集群管理,分布式锁,队列管理 介绍redis的原理,本地搭建一个redis服务,实现java的存入和取出 servlet 新特性 开启远程调试
7. **聚簇索引与非聚簇索引**:聚簇索引决定了数据的物理存储顺序,而非聚簇索引不决定数据的物理顺序,通常用于快速查找。 8. **Spring的IOC和AOP**:依赖注入(IOC)简化了对象之间的关系管理,面向切面编程(AOP...