Haproxy mysqlcluster(MySQL集群)配置_MySQL
一、准备
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配置文件
--------------------------------------------------------------------------------
[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登录
三、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
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 ]
mysql 服务 1.1.1.11:3306 依然可以正常使用。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

节点从ProxmoxVE彻底撤离及再次加入集群场景描述当ProxmoxVE集群中有节点损坏无法快速修复时,需要将故障节点干净的从集群踢出,并把残留信息清理干净。否则,新的节点用故障节点曾使用用的IP的地址将不能正常加入集群;同样,从集群中脱离出来的故障节点修复后,虽然与集群已经毫无关系,但访问此单节点的Web管理后台,将出现原ProxmoxVE集群其它节点的信息,非常恼火。从集群中驱逐节点如果ProxmoxVE是Ceph超融合集群,需要登录集群任意节点(欲删除节点除外)宿主系统Debian,命令

PHP高并发环境下数据库的优化方法随着互联网的快速发展,越来越多的网站和应用程序需要面对高并发的挑战。在这种情况下,数据库的性能优化变得尤为重要,尤其是对于使用PHP作为后端开发语言的系统来说。本文将介绍一些在PHP高并发环境下数据库的优化方法,并给出相应的代码示例。使用连接池在高并发环境下,频繁地创建和销毁数据库连接可能会导致性能瓶颈。因此,使用连接池可以

php常见的集群有LAMP集群、Nginx集群、Memcached集群、Redis集群和Hadoop集群。详细介绍:1、LAMP集群,LAMP是指Linux、Apache、MySQL和PHP的组合,是一种常见的PHP开发环境,在LAMP集群中,多个服务器运行相同的应用程序,并通过负载均衡器将请求分发到不同的服务器上;2、Nginx集群,Nginx是一种高性能的Web服务器等等。

在当今云计算时代,容器化技术已经成为开源界最受欢迎的技术之一。Docker的出现使得云计算变得更加便捷、高效,成为了开发人员、运维人员不可或缺的工具。而多节点集群技术的应用更是在Docker的基础上被广泛使用。通过多节点集群部署,我们可以更加有效地利用资源,提高可靠性和可扩展性,同时也能更加灵活地进行部署和管理。接下来,我们将为大家介绍如何使用Docker进

如何使用MongoDB实现数据的集群和负载均衡功能引言:在当今大数据时代,数据量的快速增长对数据库的性能提出了更高的要求。为了满足这些要求,数据的集群化和负载均衡成为了不可或缺的技术手段。MongoDB作为一种成熟的NoSQL数据库,提供了丰富的功能和工具来支持数据的集群和负载均衡。本文将介绍如何使用MongoDB实现数据的集群和负载均衡功能,并提供具体的代

Workerman是一个高性能的PHPSocket框架,可以使PHP更加高效地处理异步网络通信。在Workerman的文档中,有关于服务器集群实现方法的详细说明和代码示例。为了实现服务器集群,首先需要明确服务器集群的概念。服务器集群是将多台服务器连接到一个网络中,通过共享负载和资源,提高系统的性能、可靠性和可扩展性。在Workerman中,可以通过以下两种

MySQL集群部署与维护项目经验总结MySQL是互联网应用开发中最常用的数据库之一,随着业务规模不断扩大,单机的MySQL已经无法满足需求,因此需要考虑采用MySQL集群方案来扩展数据库的性能和容量。本文总结了在MySQL集群部署与维护过程中的经验和教训,希望能够对大家的MySQL集群部署和维护工作有所帮助。一、MySQL集群的部署和架构设计MySQL集群的

如何配置MySQL数据库的集群环境?引言:随着互联网的发展和数据量的不断增长,数据库成了每个企业都必备的核心系统之一。同时,为了保证数据的高可用性和读写性能的需求,数据库集群环境逐渐成为企业的选择。本文将介绍如何配置MySQL数据库的集群环境,并提供相应的代码示例。一、环境准备在配置MySQL数据库的集群环境之前,我们需要确保以下环境准备工作已经完成:安装M
