via: http://tech.it168.com/a2011/0615/1204/000001204894_1.shtml
一、配置环境:
OS:Linux CentOS 5.0
MySQL: mysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz (注意:需用Cluster版本,可在官网上下载 http://dev.mysql.com/downloads/cluster/#downloads)
节点配置情况:
MGM:192.168.20.231
NDBD1:192.168.20.232
NDBD2:192.168.20.233
SQL1:192.168.20.234
SQL2:192.168.20.235
修改CentOS IP地址
(1)打开/etc/sysconfig/network-scripts/ifcfg-eth0文件,做如下修改
# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
HWADDR=00:0c:29:be:b3:53
IPADDR=192.168.20.231
NETMASK=255.255.255.0
GATEWAY=192.168.20.1
(2)修改/etc/resolv.conf文件, 如下(修改DNS服务)
nameserver 202.101.172.35
search localdomain
(3)重启网络服务
[root@localhost ~]# service network restart
二、软件安装:
(一)管理节点MGM
配置管理节点
首先在合适的位置,创建一个管理节点的配置文件,步骤如下:
[root@localhost ~]# mkdir /var/lib/mysql-cluster
[root@localhost ~]# cd /var/lib/mysql-cluster
[root@localhost mysql-cluster]# vi config.ini
配置文件config.ini内容如下:
[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
[tcp default]
portnumber=2202
[ndb_mgmd]
hostname=192.168.20.231
datadir=/var/lib/mysql-cluster
[ndbd]
hostname=192.168.20.232
datadir=/usr/local/mysql/data
[ndbd]
hostname=192.168.20.233
datadir=/usr/local/mysql/data
[mysqld]
hostname=192.168.20.234
[mysqld]
hostname=192.168.20.235
安装管理节点,不需要mysqld二进制文件,只需要MySQL Cluster服务端程序(ndb_mgmd)和监听客户端程序(ndb_mgm)。这两个文件都在下载的MySQL-cluster文件解压后的bin文件夹中。执行如下步骤,在集群的管理节点上安装ndb_mgmd 和 ndb_mgm。
1、改变地址到/var/tmp目录下,解压MySQL-Cluster压缩文件,取出ndb_mgm和ndb_mgmd复制到/usr/local/bin 目录下。
[root@localhost ~]# cd /var/tmp
[root@localhost tmp]# tar –xzvf mysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz
[root@localhost tmp]# cd mysql-cluster-gpl-7.1.13-linux-i686-glibc23
[root@localhost tmp]# cp bin/ndb_mgm* /usr/local/bin
2、改变路径为拷贝到的目录下,并确保这两个文件可执行。
[root@localhost tmp]# cd /usr/local/bin
[root@localhost bin]# chmod +x ndb_mgm*
3、在/usr/local下创建mysql文件夹。
[root@localhost ~]# cd /usr/local
[root@localhost local]# mkdir mysql
(二)、数据节点NDBD和SQL节点
配置数据节点NDBD和SQL节点
在每一个SQL节点中的/etc目录下找到my.cnf文件,并做如下配置:
[root@localhost ~]# vi /etc/my.cnf
[client]
socket=/usr/local/mysql/sock/mysql.sock
[mysqld]
ndbcluster
datadir=/usr/local/mysql
socket=/usr/local/mysql/sock/mysql.sock
ndb-connectstring=192.168.20.231
old_passwords=1
[mysql_cluster]
ndb-connectstring=192.168.20.231
在每一个数据节点NDBD和SQL节点的机器上,用root用户执行下面的步骤。
1、检查/etc/passwd 和 /etc/group 文件,是否存在mysql组和mysql用户,如果没有,用下面的命令创建一个mysql组,并在改组中添加mysql用户。
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd –g mysql mysql
2、改变文件夹位置到mysql压缩包的存放位置,解压文件,准备安装,步骤如下:
(下载文件可以从其他电脑映射, 在/home/下面创建一个download文件夹,如果是在本机Linux下下载的文件,则不需要此映射步骤。)
[root@localhost ~]# mount -t cifs -o username="name",password="password" //192.168.20.210/MySQL /home/download
[root@localhost ~] cp /home/download/ mysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz /var/tmp
[root@localhost ~]# cd /var/tmp
[root@localhost tmp]# tar –C /usr/local –xzvf mysql-cluster-gpl-7.1.13-linux-i686-glibc23.tar.gz
3、改变位置到local文件夹,改变mysql解压后的文件夹名称为mysql,然后执行提供的脚本,创建系统数据库。
[root@localhost tmp]# cd /usr/local
[root@localhost local]# mv mysql-cluster-gpl-7.1.13-linux-i686-glibc23/ mysql/
[root@localhost local]# cd mysql
[root@localhost mysql]# mkdir sock
[root@localhost mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql
4、为MySQL服务及数据目录设置必要的服务。
[root@localhost mysql]# chown -R root .
[root@localhost mysql]# chown -R mysql.mysql /usr/local/mysql/data
[root@localhost mysql]# chown -R mysql.mysql /usr/local/mysql/sock
[root@localhost mysql]# chgrp -R mysql .
[root@localhost mysql]# ls -l
5、复制MySQL的启动脚本到如下的文件夹,确保可以执行。并设置为当系统启动时,同时启动MySQL。
[root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysql.server
[root@localhost mysql]# chkconfig --add mysql.server
三、Cluster环境启动
注意启动顺序:首先是管理节点,然后是NDBD节点,最后是SQL节点。
1、[MGM]
[root@localhost ~]# ndb_mgmd -f /var/lib/mysql-cluster/config.ini
使用ndb_mgm来监听客户端,如下:
[root@localhost ~]# ndb_mgm
2、[NDBD]
首次启动,则需要添加--initial参数,以便进行NDB节点的初始化工作。在以后的启动过程中,则是不能添加该参数的,否则ndbd程序会清除在之前建立的所有用于恢复的数据文件和日志文件。
[root@localhost ~]# /usr/local/mysql/bin/ndbd --initial
如果不是首次启动,则执行下面的命令。
[root@localhost ~]# /usr/local/mysql/bin/ndbd
3、[SQLD]
/usr/local/mysql/bin/mysqld_safe --user=mysql &
有可能出现上图问题,是系统数据库创建问题,只需再次创建系统数据库,方法如下:
[root@localhost mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql
再次启动
/usr/local/mysql/bin/mysqld_safe --user=mysql &
查看管理节点,启动成功
四、测 试
1、常规测试:
在节点4上面:
为了让表在cluster中正常复制,创建一个表必须使用ndbcluster引擎(engine=ndb Or engine=ndbcluster)方法如下:
mysql>use test
mysql>create table teacher(t_id int) engine=ndb;
如果是一个已经存在的表,用alter table修改表的引擎。
mysql>alter table student engine=ndb;
插入一条数据:
mysql>insert into teacher values(133);
然后在节点5上:
mysql>select * from teacher;
两个节点数据保持一致,恭喜你,测试成功!
2、模拟NDB节点Crash:
在节点2上终止掉NDB进程,然后再分别通过两个SQL节点去访问teacher表,查看是否可以正常访问,数据是否一致。如下:
查看进程
[root@localhost ~]# ps -ef
[root@localhost ~]# kill 3344
[root@localhost ~]# ps -ef
查看管理节点,显示节点2已关闭。
节点4上面:
节点5上面:
再回到节点4上面:
测试成功,当有一个NDB节点Crash后,整个MySQL Cluster环境仍可以正常服务。
3、模拟SQL节点Crash:
Kill掉节点4的mysqld进程,然后通过节点5进行访问,如下:
可以看到节点4 Crash之后,节点5仍然可以继续正常服务,测试成功。
相关推荐
http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-Cluster-8.0/ 2、解压以后放在一个文件夹里面,创建my.ini配置文件; my.ini文件内容: [mysqld] character-set-server=utf8 bind-address = 0.0.0.0 port = 3306 #...
如果你需要集群环境,可以考虑“InnoDB Cluster”,但至少需要三个服务实例。 - **配置类型与连接方式**:推荐选择“Development Computer”作为配置类型,保持默认的连接方式,注意记录下配置的“Port”端口号...
- **永久会话管理器,使用JDBC-to-MySQL RDBMS**: 会话数据被保存在数据库中,所有Tomcat实例通过查询数据库来获取会话信息。此方法提供了较好的可伸缩性,但也增加了数据库访问的开销。 #### 五、总结 Apache与...
嵌入式八股文面试题库资料知识宝典-华为的面试试题.zip
训练导控系统设计.pdf
嵌入式八股文面试题库资料知识宝典-网络编程.zip
人脸转正GAN模型的高效压缩.pdf
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
少儿编程scratch项目源代码文件案例素材-鸡蛋.zip
嵌入式系统_USB设备枚举与HID通信_CH559单片机USB主机键盘鼠标复合设备控制_基于CH559单片机的USB主机模式设备枚举与键盘鼠标数据收发系统支持复合设备识别与HID
嵌入式八股文面试题库资料知识宝典-linux常见面试题.zip
面向智慧工地的压力机在线数据的预警应用开发.pdf
基于Unity3D的鱼类运动行为可视化研究.pdf
少儿编程scratch项目源代码文件案例素材-霍格沃茨魔法学校.zip
少儿编程scratch项目源代码文件案例素材-金币冲刺.zip
内容概要:本文深入探讨了HarmonyOS编译构建子系统的作用及其技术细节。作为鸿蒙操作系统背后的关键技术之一,编译构建子系统通过GN和Ninja工具实现了高效的源代码到机器代码的转换,确保了系统的稳定性和性能优化。该系统不仅支持多系统版本构建、芯片厂商定制,还具备强大的调试与维护能力。其高效编译速度、灵活性和可扩展性使其在华为设备和其他智能终端中发挥了重要作用。文章还比较了HarmonyOS编译构建子系统与安卓和iOS编译系统的异同,并展望了其未来的发展趋势和技术演进方向。; 适合人群:对操作系统底层技术感兴趣的开发者、工程师和技术爱好者。; 使用场景及目标:①了解HarmonyOS编译构建子系统的基本概念和工作原理;②掌握其在不同设备上的应用和优化策略;③对比HarmonyOS与安卓、iOS编译系统的差异;④探索其未来发展方向和技术演进路径。; 其他说明:本文详细介绍了HarmonyOS编译构建子系统的架构设计、核心功能和实际应用案例,强调了其在万物互联时代的重要性和潜力。阅读时建议重点关注编译构建子系统的独特优势及其对鸿蒙生态系统的深远影响。
嵌入式八股文面试题库资料知识宝典-奇虎360 2015校园招聘C++研发工程师笔试题.zip
嵌入式八股文面试题库资料知识宝典-腾讯2014校园招聘C语言笔试题(附答案).zip
双种群变异策略改进RWCE算法优化换热网络.pdf