Maison base de données tutoriel mysql Haproxy+mysqlcluster(MySQL集群)配置_MySQL

Haproxy+mysqlcluster(MySQL集群)配置_MySQL

Jun 01, 2016 pm 01:01 PM
集群

一、准备

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登录
Copier après la connexion

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

 

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Le nœud évacue complètement Proxmox VE et rejoint à nouveau le cluster Le nœud évacue complètement Proxmox VE et rejoint à nouveau le cluster Feb 21, 2024 pm 12:40 PM

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 dans un environnement PHP à haute concurrence Méthode d'optimisation de base de données dans un environnement PHP à haute concurrence Aug 11, 2023 pm 03:55 PM

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

Quels sont les clusters courants en php ? Quels sont les clusters courants en php ? Aug 31, 2023 pm 05:45 PM

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.

Comment utiliser Docker pour gérer et développer des clusters multi-nœuds Comment utiliser Docker pour gérer et développer des clusters multi-nœuds Nov 07, 2023 am 10:06 AM

À 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

Méthode d'implémentation du cluster de serveurs dans la documentation Workerman Méthode d'implémentation du cluster de serveurs dans la documentation Workerman Nov 08, 2023 pm 08:09 PM

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 Comment utiliser MongoDB pour implémenter des fonctions de clustering de données et d'équilibrage de charge Sep 19, 2023 pm 01:22 PM

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 ? Comment configurer l'environnement cluster de la base de données MySQL ? Jul 12, 2023 pm 02:52 PM

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 Résumé de l'expérience du projet de déploiement et de maintenance du cluster MySQL Nov 02, 2023 pm 01:33 PM

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

See all articles