MySQL簇集群配置安装相关


配置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;创建数据库表即可实现

相关内容