mysql cluster集群配置与安装.docx
- 文档编号:6164222
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:7
- 大小:17.33KB
mysql cluster集群配置与安装.docx
《mysql cluster集群配置与安装.docx》由会员分享,可在线阅读,更多相关《mysql cluster集群配置与安装.docx(7页珍藏版)》请在冰豆网上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- mysql cluster集群配置与安装 cluster 集群 配置 安装