0

0

MySQL集群架构及配置过程中出现问题的解决

php中文网

php中文网

发布时间:2016-06-07 16:33:32

|

1463人浏览过

|

来源于php中文网

原创

集群的条件就是所有的机器上都要安装MySQL的集群软件,我安装的是MySQL-Cluster-gpl-7.3.5-1.el6.x86_64.rpm-bundle.tar的rpm包,

首先说下MySQL的优缺点

优点

  • 解决单点故障
  • 自动实现数据冗余
  • 缺点就是维护起来太麻烦。

    集群的条件就是所有的机器上都要安装MySQL的集群软件,我安装的是MySQL-Cluster-gpl-7.3.5-1.el6.x86_64.rpm-bundle.tar的rpm包,解包之后所有的软件都要安装。不是源码包安装。如果系统里面安装了mysql-server等数据库服务软件的要自行卸载掉即可。

    MySQL集群中有三种角色,下面是三种角色以及其的作用

    角色

    数据节点:ndbd节点 存储在表里的数据(表中的记录)

    SQL节点:不存储数据,供用户访问和执行SQL操作

    管理节点:用来管理集群,在主机本机启动管理进程的时候,指定使用的配置文件

    接下来就是重点了。集群的配置文件。这个配置文件要自己手动建立的

    首先是管理节点的主配置文件,这个主配置文件首先要以.ini结尾的文件,我存放的目录放在/etc/mysql-cluster.ini之中,其就是我的管理节点的配置文件。

    格式:

    标签:下面[]中括号内的就是标签。

    [ndbd default] 指定数据节点的公共配置,对所有节点都适用的。

    [ndb_mgmd] 指定管理节点的配置

    [ndbd] 指定数据节点的配置

    [mysqld] 指定SQL节点的配置

    注意:此时你有几个节点就要写几次标签,也就是说如果你有2台机器是做SQL节点的,就必须定义2个[mysqld]标签。数据节点亦是如此。下面是我自己的配置。

     

     

    [ndbd default]

    NoOfReplicas=2  一份数据备份几份,一般情况下和数据节点个数相同

    DataMemory=80M  用多来物理内存来保存执行的SQL语句和执行结果

    IndexMemory=18M 用多来物理内存来保存执行的索引字段语句和执行结果

     

     

    [ndb_mgmd]

    nodeid=1    (同一个网络内id号不能重复,必须唯一。一般情况下可以设置成本机ip地址的主机位,但是在RedHat6中,好像nodeid不能超过50的。)

    hostname=192.168.1.1    管理主机的ip地址

    datadir=/usr/local/cluster/ndbddata管理集群时收集的集群信息的存放路径

    (系统内必须存在此目录,没有手动建立,权限没关系)

     

    [ndbd]

    nodeid=30

    Hostname=192.168.1.30

    Datadir=/usr/local/cluster/ndbddata SQL节点存储数据的路径

    (系统内必须存在此目录,没有手动建立,权限没关系)

    [ndbd]

    nodeid=40

    Hostname=192.168.1.40

    Datadir=/usr/local/cluster/ndbddata

     

    [mysqld]    不用指定数据存储的位置,因为其只提供mysql服务

    nodeId=10

    Hostname=192.168.1.10

    [mysqld]

    nodeId=20

    Hostname=192.168.1.20

    注:千万不要忘记上面写的目录,等下用到的。我们把主配置文件写好了,然后就去创建我们的datadir吧。千万不要忘记。

    配置数据节点:

    手写配置文件(所有的数据节点都需要配置,可以复制一份到其他数据节点上去然后修改即可)

    其配置文件和mysql-server的配置文件同名,即my.cnf,注意把mysql-server的配置文件mv走或者改名

    ECTouch移动商城系统
    ECTouch移动商城系统

    ECTouch是上海商创网络科技有限公司推出的一套基于 PHP 和 MySQL 数据库构建的开源且易于使用的移动商城网店系统!应用于各种服务器平台的高效、快速和易于管理的网店解决方案,采用稳定的MVC框架开发,完美对接ecshop系统与模板堂众多模板,为中小企业提供最佳的移动电商解决方案。ECTouch程序源代码完全无加密。安装时只需将已集成的文件夹放进指定位置,通过浏览器访问一键安装,无需对已有

    下载

    [mysqld]

    datadir=/usr/local/cluster/ndbdata //此目录必须和管理配置文件中指定的目录一致,没有手动建立

    ndb-connectstring=192.168.1.1    指向由谁管理我的主机的ip地址

    ndbcluster  运行的是什么存储引擎

    [mysql_cluster]指定的是谁来管理集群

    ndb-connectstring=192.168.1.1 管理集群的主机

    配置sql节点:

    编写配置文件

    vim  /etc/my.cnf 也是需要手动建立的配置文件

    [mysqld]

    ndbcluster  

    default-storage-engin=ndbcluster 指定使用的数据库存储引擎

    [mysql_cluster]指定的是谁来管理集群

    ndb-connectstring=192.168.1.1

    到此,所有集群的计算机配置完毕,接下来我们就可以启动服务了。

    启动集群的顺序:

       先启动管理节点的进程

       ndb_mgmd -f /管理主配置文件的路径  ,其使用的是本机的1186端口,在命令行下进行输入

       进入集群管理

       ndb_mgm    在命令行下进行输入

       ndb_mgm>show查看信息

    启动数据节点的数据进程

       ndbd

       启动sql节点的数据库服务

       service mysql start和原来启动数据库服务器一样

    安全关闭集群服务

     要想关闭 Cluster,可在MGM节点所在的机器上,在Shell中简单地输入下述命令:

      [ndb_mgmd]root# /usr/local/mysql/ndb_mgm -e shutdown

      运行以下命令关闭SQL节点的mysqld服务:

      [ndb_mgmd]root# /usr/local/mysql/bin/mysqladmin -uroot shutdown

       停止ndbd的时候通过kill -9 进程号来停止

    总结:在搭建的过程中,出现了很多的小问题,只要大家细心下就可以避免,比方说我在配置的时候遇到的问题。

    第一个问题:管理节点的服务启动不了

    ndb_mgmd -f /etc/mysql-cluster.ini

    [root@localhost data]# ndb_mgmd -f /etc/mysql-cluster.ini

    MySQL Cluster Management Server mysql-5.6.17 ndb-7.3.5

    2014-05-13 03:23:47 [MgmtSrvr] ERROR    -- Directory '/usr/local/cluster/ndbdata' specified with DataDir in configuration does not exist.

    刚开始我以为ndbdata是个文件,,目录只建到cluster,所有就报错,看了配置文件没有问题,后来找就发现了ndbdata也是一个目录。这是一点需要注意的,而且此目录要和主配置文件中定义的datadir一致。

    第二个问题:ndbd启动不了,报错的文件就是说和管理节点联系不上,后来去看ndbd节点上的配置文件,发现指定谁管理我的集群的时候少了一个cluster,即正确的是[mysql_cluster]而我写成了[mysqld],就启动不了。改正确即可

    配置集群服务器不容易出错,只要自己够细心,完全能够一次性配置成功。之后就是调优的问题了,各位可以依据各自的环境进行调优。

    --------------------------------------分割线 --------------------------------------

    Ubuntu 14.04下安装MySQL

    《MySQL权威指南(原书第2版)》清晰中文扫描版 PDF

    Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL

    Ubuntu 14.04下搭建MySQL主从服务器

    Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群

    Ubuntu 12.04下源代码安装MySQL5.6以及Python-MySQLdb

    MySQL-5.5.38通用二进制安装

    --------------------------------------分割线 --------------------------------------

    本文永久更新链接地址:

    热门AI工具

    更多
    DeepSeek
    DeepSeek

    幻方量化公司旗下的开源大模型平台

    豆包大模型
    豆包大模型

    字节跳动自主研发的一系列大型语言模型

    通义千问
    通义千问

    阿里巴巴推出的全能AI助手

    腾讯元宝
    腾讯元宝

    腾讯混元平台推出的AI助手

    文心一言
    文心一言

    文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

    讯飞写作
    讯飞写作

    基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

    即梦AI
    即梦AI

    一站式AI创作平台,免费AI图片和视频生成。

    ChatGPT
    ChatGPT

    最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

    相关专题

    更多
    pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
    pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

    本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

    797

    2026.02.13

    微博网页版主页入口与登录指南_官方网页端快速访问方法
    微博网页版主页入口与登录指南_官方网页端快速访问方法

    本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

    272

    2026.02.13

    Flutter跨平台开发与状态管理实战
    Flutter跨平台开发与状态管理实战

    本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

    144

    2026.02.13

    TypeScript工程化开发与Vite构建优化实践
    TypeScript工程化开发与Vite构建优化实践

    本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

    25

    2026.02.13

    Redis高可用架构与分布式缓存实战
    Redis高可用架构与分布式缓存实战

    本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

    92

    2026.02.13

    c语言 数据类型
    c语言 数据类型

    本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

    53

    2026.02.12

    雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
    雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

    本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

    15

    2026.02.12

    豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
    豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

    本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

    717

    2026.02.12

    PostgreSQL性能优化与索引调优实战
    PostgreSQL性能优化与索引调优实战

    本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

    64

    2026.02.12

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    马哥初级运维视频教程
    马哥初级运维视频教程

    共80课时 | 20.4万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号