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 依然可以正常使用。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Description du scénario pour que les nœuds évacuent complètement de ProxmoxVE et rejoignent le cluster Lorsqu'un nœud du cluster ProxmoxVE est endommagé et ne peut pas être réparé rapidement, le nœud défectueux doit être expulsé proprement du cluster et les informations résiduelles doivent être nettoyées. Sinon, les nouveaux nœuds utilisant l'adresse IP utilisée par le nœud défectueux ne pourront pas rejoindre le cluster normalement ; de même, une fois le nœud défectueux qui s'est séparé du cluster réparé, bien que cela n'ait rien à voir avec le cluster, il le fera. ne pas pouvoir accéder à la gestion Web de ce nœud unique. En arrière-plan, des informations sur les autres nœuds du cluster ProxmoxVE d'origine apparaîtront, ce qui est très ennuyeux. Expulsez les nœuds du cluster. Si ProxmoxVE est un cluster hyper-convergé Ceph, vous devez vous connecter à n'importe quel nœud du cluster (à l'exception du nœud que vous souhaitez supprimer) sur le système hôte Debian et exécuter la commande.

Méthode d'optimisation de base de données PHP dans un environnement à haute concurrence Avec le développement rapide d'Internet, de plus en plus de sites Web et d'applications doivent faire face à des défis de haute concurrence. Dans ce cas, l'optimisation des performances de la base de données devient particulièrement importante, en particulier pour les systèmes qui utilisent PHP comme langage de développement back-end. Cet article présentera quelques méthodes d'optimisation de base de données dans un environnement PHP à haute concurrence et donnera des exemples de code correspondants. Utilisation du regroupement de connexions Dans un environnement à forte concurrence, la création et la destruction fréquentes de connexions à des bases de données peuvent entraîner des goulots d'étranglement en termes de performances. Par conséquent, l’utilisation du pool de connexions peut

Les clusters courants en PHP incluent le cluster LAMP, le cluster Nginx, le cluster Memcached, le cluster Redis et le cluster Hadoop. Introduction détaillée : 1. Le cluster LAMP fait référence à une combinaison de Linux, Apache, MySQL et PHP. Il s'agit d'un environnement de développement PHP commun, plusieurs serveurs exécutent la même application et sont équilibrés via un équilibreur de charge. sont distribués sur différents serveurs ; 2. Cluster Nginx, Nginx est un serveur Web hautes performances, etc.

À l’ère actuelle du cloud computing, la technologie de conteneurisation est devenue l’une des technologies les plus populaires dans le monde open source. L'émergence de Docker a rendu le cloud computing plus pratique et efficace et est devenu un outil indispensable pour les développeurs et le personnel d'exploitation et de maintenance. L'application de la technologie de cluster multi-nœuds est largement utilisée sur la base de Docker. Grâce au déploiement de clusters multi-nœuds, nous pouvons utiliser les ressources plus efficacement, améliorer la fiabilité et l'évolutivité, et également être plus flexibles dans le déploiement et la gestion. Ensuite, nous présenterons comment utiliser Docker pour

Workerman est un framework PHPSocket hautes performances qui permet à PHP de gérer plus efficacement les communications réseau asynchrones. Dans la documentation de Workerman, vous trouverez des instructions détaillées et des exemples de code sur la façon d'implémenter un cluster de serveurs. Afin de mettre en œuvre un cluster de serveurs, nous devons d'abord clarifier le concept de cluster de serveurs. Un cluster de serveurs connecte plusieurs serveurs à un réseau pour améliorer les performances, la fiabilité et l'évolutivité du système en partageant les charges et les ressources. Dans Workerman, vous pouvez utiliser les deux méthodes suivantes

Comment utiliser MongoDB pour implémenter des fonctions de clustering de données et d'équilibrage de charge Introduction : À l'ère actuelle du Big Data, la croissance rapide du volume de données a mis en avant des exigences plus élevées en matière de performances des bases de données. Afin de répondre à ces exigences, le clustering de données et la répartition de charge sont devenus des moyens techniques indispensables. En tant que base de données NoSQL mature, MongoDB fournit des fonctions et des outils riches pour prendre en charge le clustering de données et l'équilibrage de charge. Cet article expliquera comment utiliser MongoDB pour implémenter des fonctions de clustering de données et d'équilibrage de charge, et fournira un code spécifique.

Comment configurer l'environnement cluster de la base de données MySQL ? Introduction : Avec le développement d'Internet et la croissance continue du volume de données, la base de données est devenue l'un des systèmes centraux nécessaires à chaque entreprise. Dans le même temps, afin de garantir une haute disponibilité des données et des exigences de performances en lecture et en écriture, les environnements de cluster de bases de données sont progressivement devenus le choix des entreprises. Cet article explique comment configurer l'environnement de cluster de la base de données MySQL et fournit des exemples de code correspondants. 1. Préparation de l'environnement Avant de configurer l'environnement cluster de la base de données MySQL, nous devons nous assurer que les préparations de l'environnement suivantes ont été effectuées : Installer M

Résumé de l'expérience du projet de déploiement et de maintenance du cluster MySQL MySQL est l'une des bases de données les plus couramment utilisées dans le développement d'applications Internet. À mesure que l'échelle de l'entreprise continue de croître, MySQL autonome ne peut plus répondre à la demande. Solution de cluster MySQL pour étendre les performances et la capacité de la base de données. Cet article résume l'expérience et les leçons apprises dans le processus de déploiement et de maintenance du cluster MySQL, dans l'espoir d'être utile au travail de déploiement et de maintenance du cluster MySQL de chacun. 1. Déploiement et conception de l'architecture du cluster MySQL Cluster MySQL
