mysql cluster集群配置与安装.docx

上传人:b****6 文档编号:6164222 上传时间:2023-01-04 格式:DOCX 页数:7 大小:17.33KB
下载 相关 举报
mysql cluster集群配置与安装.docx_第1页
第1页 / 共7页
mysql cluster集群配置与安装.docx_第2页
第2页 / 共7页
mysql cluster集群配置与安装.docx_第3页
第3页 / 共7页
mysql cluster集群配置与安装.docx_第4页
第4页 / 共7页
mysql cluster集群配置与安装.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

mysql cluster集群配置与安装.docx

《mysql cluster集群配置与安装.docx》由会员分享,可在线阅读,更多相关《mysql cluster集群配置与安装.docx(7页珍藏版)》请在冰豆网上搜索。

mysql cluster集群配置与安装.docx

mysqlcluster集群配置与安装

安装版本:

mysqlcluster7.2.6

操作系统centos6.2(X64)

软件名称mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz

管理节点数据节点SQL节点在IP10.8.10.38(master)

数据节点SQL节点在IP10.8.10.35

 

首先,检查系统是否装载了mysql

使用命令

rpm-qa|grep-imysql

如果有显示全部卸载,如果没有说明没有安装mysql

rpm-eMySQL-python-1.2.3-0.3.c1.1.el6.x86_64

rpm-emysql-5.1.52-1.el6_0.1.x86_64

rpm-emysql-connector-odbc-5.1.5r1144-7.el6.x86_64

rpm-emysql-libs-5.1.52-1.el6_0.1.x86_64–nodeps

删除f

rm–fr/etc/f

tar-zxvfmysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz

解压完成后运行

mvmysql-cluster-gpl-7.2.6-linux2.6-x86_64/usr/local/mysql

添加用户mysql

useraddmysql

chown-Rmysql:

mysql/usr/local/mysql/

 

进入安装脚本路径

cd/usr/local/mysql/scripts/

带参数运行安装程序

./mysql_install_db--user=mysql--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data&

注意:

&不带此符号,安装程序容易不进行安装,而且报错

 

拷贝ndb_mgmndb_mgmd文件到/usr/local/bin/

cp-fr/usr/local/mysql/bin/ndb_mgm*/usr/local/bin/

创建mysql-cluster文件夹

mkdir/var/lib/mysql-cluster

创建config.ini文件

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

文件内容

[NDBDDEFAULT]

NoOfReplicas:

1#定义在Cluster环境中相同数据的份数最大为4

#DataMemory,IndexMemory,andStringMemory#

DataMemory:

500M#分配的数据内存大小

IndexMemory:

250M#设定用于存放索引(非主键)数据的内存段大小

#一个NDB节点能存放的数据量是会受到DataMemory和IndexMemory两个参数设置的约束,#两者任何一个达到限制数量后,都无法再增加能存储的数据量。

如果继续存入数据系统会#报错“tableisfull”。

MaxNoOfAttributes:

20480#类似于总体设置,大一些好,不然导入大数据量时容易报错,请参看相关资料

MaxNoOfTables:

1024

MaxNoOfOrderedIndexes:

2048

MaxNoOfUniqueHashIndexes:

512

MaxNoOfTriggers:

10240

 

[MGMDEFAULT]

PortNumber:

1186#管理节点端口

 

[NDB_MGMD]#管理节点IP配置datadir值必须是真实存在的,不然启动报错

Nodeid=1

hostname=10.8.10.38

datadir=/var/lib/mysql-cluster/

 

[NDBD]#数据节点1

Nodeid=2

hostname=10.8.10.38

datadir=/usr/local/mysql/data

[NDBD]#数据节点2

Nodeid=3

hostname=10.8.10.35

datadir=/usr/local/mysql/data

[MYSQLD]#SQL节点1

hostname=10.8.10.38

[MYSQLD]#SQL节点2

hostname=10.8.10.35

[MYSQLD]#预留节点以备扩展使用,否则会出现FailedtoallocatenodeidNofreenodeidfoundforndbd(NDB)错误

注:

配置时,[]右边的注释不要加上,否则系统不认。

保存退出

创建f文件(当前主机IP10.8.10.38)

vi/etc/f

[MYSQLD]

character_set_server=utf8

ndbcluster#运行NDB存储引擎

ndb-connectstring=10.8.10.38#mysql数据库所在地址

datadir=/usr/local/mysql/data

basedir=/usr/local/mysql

port=3306

lower_case_table_names=1#表名是否区分大小写1为不区分,不然linux下表名是区分大小写的

[MYSQL_CLUSTER]

ndb-connectstring=10.8.10.38#mysqlcluster管理节点IP

 

保存退出

创建f文件(当前主机IP10.8.10.35)

[MYSQLD]

character_set_server=utf8

ndbcluster#运行NDB存储引擎

ndb-connectstring=10.8.10.35#mysql数据库所在地址

datadir=/usr/local/mysql/data

basedir=/usr/local/mysql

port=3306

lower_case_table_names=1#表名是否区分大小写1为不区分,不然linux下表名是区分大小写的

[MYSQL_CLUSTER]

ndb-connectstring=10.8.10.38#mysqlcluster管理节点IP

 

保存退出

 

下面把两台服务器的防火墙(IPTABLES)与selinux关闭

serviceiptablesstop

vi/etc/selinux/config(改为SELINUX=disabled)保存退出reboot两台机器

由于不是从系统启动方面停止的防火墙(IPTABLES)

所以再停止一次防火墙(IPTABLES)

serviceiptablesstop

关于系统启动方面去掉防火墙,请查阅相关资料,这里不再提及!

 

启动顺序

管理节点数据节点SQL节点

关闭顺序

SQL节点数据节点管理节点

启动管理节点命令ndb_mgmd-f/var/lib/mysql-cluster/config.ini--initial(主节点10.8.10.38机器)

--initial首次加载/var/lib/mysql-cluster/config.ini文件有改变其它时候不要加,除非是在备份、恢复或配置变化后重启时

其他时候不要加,不然数据就清空……

启动数据节点命令ndbd–initial

--initial首次加载其它时候不要加,除非是在备份、恢复或配置变化后重启时

其他时候不要加,不然数据就清空……

节点状态、客户端状态查看

ndb_mgm-eshow

停止管理节点与数据节点

ndb_mgm–eshutdown

 

查看状态如下

[ndbd(NDB)]2node(s)

id=2@10.8.10.38(mysql-5.5.22ndb-7.2.6,startingNodegroup:

0,Master)#表示正在启动

id=3@10.8.10.38(mysql-5.5.22ndb-7.2.6,Nodegroup:

1)

[ndb_mgmd(MGM)]1node(s)

id=1@10.8.10.38(mysql-5.5.22ndb-7.2.6)

[mysqld(API)]3node(s)

id=4@10.8.10.38(mysql-5.5.22ndb-7.2.6)

id=5@10.8.10.35(mysql-5.5.22ndb-7.2.6)

id=6(notconnected,acceptingconnectfromanyhost)

启动SQL节点命令mysqld_safe&

网上还有其他启动方式,推荐使用这种方式,避免走弯路!

 

在数据节点(10.8.10.36)

只需启动ndbd与mysqld_safe&即可

全部启动后设置root密码

mysqladmin-uroot-password'你的密码'(root密码需要两台机器设置)

 

登陆你的mysql

mysql–uroot–p

 

createdatabasetesta;

usetesta;

当前已经进入testa数据库,现在两面检查数据库testa是否都存在

createtabletest1(idint)engine=ndbcluster;

此处engine必须为ndbcluster不然集群时导入数据易丢失,而且建立表的字段时必须有主键,不然cluster会默认为你添加主键,耗费无限的内存,导致系统崩溃(此处为测试表,没有主键,请谅解)

 insertintotest1values

(1);

此时看两个数据是否数据一致,如果一致说明集群已经成功!

下面说一下对数据库的一些迷惑,我是使用java变成语言,直接连接数据节点连接不了(NDB)

那么我该怎么才能利用好cluster的优势呢(不怕坏点,数据不易丢失,高可用性等等)

经过测试:

使用JDBC或JNDI时加一句话如下

jdbc:

mysql:

//10.8.10.38:

3306/appmarketdev?

characterEncoding=utf-8(原方式)

jdbc:

mysql:

loadbalance:

//10.8.10.35:

3306,10.8.10.38:

3306/appmarketdev?

characterEncoding=utf-8(现方式)

增加了loadbalance与另一个数据库连接地址其他开发语言不是很清楚是否具备这个功能

 

MYSQLCLUSTER当前的支持SQL与NOSQL方式,NOSQL方式还没找到具体方案,请高手赐教!

性能方面还在测试,希望后续有性能的测试跟进,我会尽力努力!

 

PS:

感谢我的领导给予我的信任,感谢我的朋友,我的同事,我的网友,给予我的支持,真挚的感谢你们!

有你们我才能更精彩!

有研究mysqlcluster的可以发送邮件至zhaoshuo5550@

多谢!

~~~

 

崇贺

2012/6/5

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1