0

0

Haproxy+mysqlcluster(MySQL集群)配置_MySQL

php中文网

php中文网

发布时间:2016-06-01 13:01:12

|

1291人浏览过

|

来源于php中文网

原创

一、准备

1、准备服务器

建立有2个节点的MySQL CLuster体系,使用6台服务器建立Haproxy+mysql cluster( MySQL 集群) 体系

节点配置说明
节点 对应的IP和端口
Haproxy负载均衡(1个) centos 6.3 1.1.1.11
管理节点(1个) centos 6.3 1.1.1.30
SQL节点 (2个) centos 6.3 1.1.1.21
1.1.1.22
数据节点 (2个) centos 6.3 1.1.1.31
1.1.1.32

二、Haproxy负载均衡安装配置

[root@HAPROXY001 ~]# yum install haproxy*

在/etc/haproxy/目录下创建haproxy.cfg配置文件

--------------------------------------------------------------------------------

Timebolt
Timebolt

视频静态过滤器,可以快速自动删除沉默镜头

下载

[root@HAPROXY001 ~]# vim /etc/haproxy/haproxy.cfg

 

# this config needs haproxy-1.1.28 or haproxy-1.2.1

global

log 127.0.0.1 local0 info #日志相关

log 127.0.0.1 local1 notice

maxconn 4096

chroot /usr/local/haproxy

uid root

gid root

daemon

#debug

#quiet

pidfile /usr/local/haproxy/haproxy.pid

defaults

log global

mode http

#option httplog

option dontlognull

retries 3

option redispatch

maxconn 8000

contimeout 3000

clitimeout 30000

srvtimeout 30000

 

listen mysql

bind 0.0.0.0:3306 #代理端口

mode tcp #模式 TCP

option mysql-check #user root #mysql健康检查 root为mysql登录用户名

balance roundrobin #调度算法

server mysql1 1.1.1.21:3306 check port 3306#weight 1 check inter 1s rise 2 fall 2 #健康检查加上check

server mysql2 1.1.1.22:3306 check port 3306#weight 1 check inter 1s rise 2 fall 2

 

listen stats #监控

mode http

bind 0.0.0.0:8888

stats enable

stats uri /dbs

stats realm Global\ statistics

stats auth admin:hello123

--------------------------------------------------------------------------------

启动服务:/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg

 

登录浏览器查看:  输入admin hello123登录

wKioL1R8RuOwLCEWAAYmE9A0L_4625.jpg

 

三、mysql cluster安装

1,mysql cluster 各节点安装,以管理节点为例

[root@MYSQLMANAGER ~]# wget http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64.tar.gz

[root@MYSQLMANAGER ~]# groupadd mysql

[root@MYSQLMANAGER ~]# useradd mysql -g mysql

[root@MYSQLMANAGER ~]# tar -xvf mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64.tar.gz

[root@MYSQLMANAGER ~]# mv mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64 /usr/local/mysql

[root@MYSQLMANAGER ~]# cd /usr/local/

[root@MYSQLMANAGER ~]# chown -R mysql:mysql mysql/

[root@MYSQLMANAGER ~]# cd mysql/

[root@MYSQLMANAGER ~]# scripts/mysql_install_db --user=mysql

 

2,节点配置

管理节点:

[root@MYSQLMANAGER ~]# vi /var/lib/mysql-cluster/config.ini

--------------------------------------------------------------------------------

[NDBD DEFAULT]

NoOfReplicas=2 #副本数量,建议使用默认的2

MaxNoOfConcurrentOperations=10000

DataMemory=1024M #每个数据节点中给数据分配的内存

IndexMemory=500M #每个数据节点中给索引分配的内存

BackupMemory: 50M

[NDB_MGMD]

#管理节点配置项

Nodeid= 1

HostName=1.1.1.30 #管理节点IP

DataDir=/usr/local/mysql/data #管理节点日志、配置目录

ArbitrationRank: 1 #该节点的优先级别等级

[NDBD]

#数据节点配置项

Nodeid = 2 #第一个数据节点

HostName=1.1.1.31 #数据节点IP

DataDir=/usr/local/mysql/data #数据节点存放数据的目录

[NDBD]

Nodeid = 3 #第二个数据节点

HostName=1.1.1.32

DataDir=/usr/local/mysql/data

[mysqld]

#SQL节点配置项

Nodeid = 4 #第一个SQL节点

HostName=1.1.1.21

[mysqld]

Nodeid = 5 #第二个SQL节点

HostName=1.1.1.22

[mysqld]

Nodeid = 6 #第三个SQL节点

HostName=1.1.1.254

[mysqld]

#建议保留一个SQL节点配置口

--------------------------------------------------------------------------------

 

数据节点: 两数据节点配置一样

 

[root@MYSQLDB001 ~]# vim /etc/my.cnf

--------------------------------------------------------------------------------

[mysqld]

datadir=/usr/local/mysql/data

socket=/usr/local//mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

#运行NDB存储引擎

ndbcluster

#指定管理节点

ndb-connectstring=1.1.1.30:1186

 

[MYSQL_CLUSTER]

ndb-connectstring=1.1.1.30:1186

[NDB_MGM]

connect-string=1.1.1.30

 

[mysqld_safe]

log-error=/usr/local/mysql/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

--------------------------------------------------------------------------------


SQL节点配置:

 

 

[root@MYSQL001 ~]# cd /usr/local/mysql/

[root@MYSQL001 ~]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

[root@MYSQL001 ~]# chmod +x /etc/rc.d/init.d/mysqld

[root@MYSQL001 ~]# chkconfig --add mysqld

[root@MYSQL001 ~]# vi /etc/my.cnf

--------------------------------------------------------------------------------

 

[mysqld]

server-id=4

#每个服务器的id不一样

datadir=/usr/local/mysql/data

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

log-bin = /usr/local/mysql/log/mysql-bin.log

max_connections=1000

skip-name-resolve

 

#以下为mysql 主主模式的配置文件

# 忽略mysql数据库复制

binlog-ignore-db=mysql

# 每次增长2

auto-increment-increment = 2

# 设置自动增长的字段的偏移量,即初始值为2

auto-increment-offset = 1

 

[mysqld_safe]

log-error=/usr/local/mysql/log/mysqld.log

pid-file=/usr/local/mysql/mysqld.pid

 

[MYSQLD]

ndbcluster

ndb-connectstring=1.1.1.30

[MYSQL_CLUSTER]

ndb-connectstring=1.1.1.30

[NDB_MGM]

connect-string=1.1.1.30

3,启动服务

CLUSTER启动的顺序依次为:管理节点—数据节点—SQL节点 关闭顺序相反

 

管理节点启动:

[root@MYSQLMANAGER ~]# /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini

添加新节点后,重新加载管理节点配置信息:

 

[root@MYSQLMANAGER ~]# /usr/local/mysql/bin/ndb_mgmd -f /etc/config.ini --initial

[root@MYSQLMANAGER ~]# /usr/local/mysql/bin/ndb_mgmd -f /etc/config.ini --reload

 

数据节点启动:

[root@MYSQLDB001 ~]# /usr/local/mysql/bin/ndbd --initial

注意:仅限第一次mysql节点启动使用–-initial,后面再启动不需要此参数

 

SQL节点启动:

[root@MYSQL001 ~]# service mysqld start

 

四、mysql cluster 测试

1,查看cluster 信息

[root@MYSQLMANAGER ~]#ndb_mgm -e show

wKiom1R9M53gIIoEAAFvaL4okmM280.jpg

2,测试SQL数据同步

从SQL节点1登录,创建数据库和表,进行简单测试。

[root@MYSQL001 ~]# mysql -uroot -p

mysql> create database test ;

mysql> use test;
Database changed

mysql> create table test1(id int,name varchar(10)) engine=ndb ;

mysql> insert into test1 values(1,'test');

mysql> select * from test1 ;

+------+---------+
| id | name |
+------+---------+
| 1 | test |
+------+---------+

从SQL节点2登录,查看效果,库,表和数据已经同步。

从SQL节点2节点插入一条数据,同样登陆SQL节点1,也能看到数据已经同步

3,测试HA服务

停止SQL节点2服务查看

[root@MYSQL002 ~]# /etc/init.d/mysqld stop

Shutting down MySQL.... [ OK ]

wKioL1R9OILyn6L2AAXs559Vej8749.jpgwKiom1R9OEfyn9AzAAF8FYaGkuk795.jpg

mysql 服务 1.1.1.11:3306 依然可以正常使用。

 

热门AI工具

更多
DeepSeek
DeepSeek

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

豆包大模型
豆包大模型

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

通义千问
通义千问

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

腾讯元宝
腾讯元宝

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

文心一言
文心一言

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

讯飞写作
讯飞写作

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

即梦AI
即梦AI

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

ChatGPT
ChatGPT

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

相关专题

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

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

286

2026.02.13

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

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

126

2026.02.13

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

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

42

2026.02.13

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

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

19

2026.02.13

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

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

23

2026.02.13

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

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

29

2026.02.12

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

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

14

2026.02.12

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

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

421

2026.02.12

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

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

51

2026.02.12

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
TypeScript 教程
TypeScript 教程

共19课时 | 3万人学习

Pandas 教程
Pandas 教程

共15课时 | 1.1万人学习

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

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