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

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Perihalan senario untuk nod mengosongkan sepenuhnya daripada ProxmoxVE dan menyertai semula kluster Apabila nod dalam kluster ProxmoxVE rosak dan tidak boleh dibaiki dengan cepat, nod yang rosak perlu ditendang keluar dari kluster dengan bersih dan maklumat baki mesti dibersihkan. Jika tidak, nod baharu yang menggunakan alamat IP yang digunakan oleh nod yang rosak tidak akan dapat menyertai kluster secara normal, selepas nod rosak yang telah dipisahkan daripada kluster dibaiki, walaupun ia tidak ada kaitan dengan kluster, ia akan; tidak dapat mengakses pengurusan web nod tunggal ini Di latar belakang, maklumat tentang nod lain dalam kelompok ProxmoxVE asal akan muncul, yang sangat menjengkelkan. Usir nod daripada kluster Jika ProxmoxVE ialah kluster hiper-tumpu Ceph, anda perlu log masuk ke mana-mana nod dalam kluster (kecuali nod yang anda mahu padamkan) pada sistem hos Debian, dan jalankan arahan

Kaedah pengoptimuman pangkalan data PHP dalam persekitaran konkurensi tinggi Dengan perkembangan pesat Internet, semakin banyak laman web dan aplikasi perlu menghadapi cabaran serentak yang tinggi. Dalam kes ini, pengoptimuman prestasi pangkalan data menjadi sangat penting, terutamanya untuk sistem yang menggunakan PHP sebagai bahasa pembangunan bahagian belakang. Artikel ini akan memperkenalkan beberapa kaedah pengoptimuman pangkalan data dalam persekitaran konkurensi tinggi PHP dan memberikan contoh kod yang sepadan. Menggunakan pengumpulan sambungan Dalam persekitaran konkurensi tinggi, penciptaan dan pemusnahan sambungan pangkalan data yang kerap boleh menyebabkan kesesakan prestasi. Oleh itu, menggunakan penyatuan sambungan boleh

Kluster biasa dalam PHP termasuk kluster LAMP, kluster Nginx, kluster Memcached, kluster Redis dan kluster Hadoop. Pengenalan terperinci: 1. Kluster LAMP merujuk kepada gabungan Linux, Apache, MySQL dan PHP diedarkan kepada pelayan yang berbeza 2. Kelompok Nginx, Nginx ialah pelayan web berprestasi tinggi dan sebagainya.

Dalam era pengkomputeran awan hari ini, teknologi kontena telah menjadi salah satu teknologi paling popular di dunia sumber terbuka. Kemunculan Docker telah menjadikan pengkomputeran awan lebih mudah dan cekap, dan telah menjadi alat yang sangat diperlukan untuk pembangun dan kakitangan operasi dan penyelenggaraan. Aplikasi teknologi kluster berbilang nod digunakan secara meluas berdasarkan Docker. Melalui penggunaan kluster berbilang nod, kami boleh menggunakan sumber dengan lebih berkesan, meningkatkan kebolehpercayaan dan kebolehskalaan, dan juga menjadi lebih fleksibel dalam penggunaan dan pengurusan. Seterusnya, kami akan memperkenalkan cara menggunakan Docker untuk

Workerman ialah rangka kerja PHPSocket berprestasi tinggi yang membolehkan PHP mengendalikan komunikasi rangkaian tak segerak dengan lebih cekap. Dalam dokumentasi Workerman, terdapat arahan terperinci dan contoh kod tentang cara melaksanakan kluster pelayan. Untuk melaksanakan kluster pelayan, kita perlu menjelaskan konsep kluster pelayan terlebih dahulu. Kelompok pelayan menghubungkan berbilang pelayan ke rangkaian untuk meningkatkan prestasi sistem, kebolehpercayaan dan kebolehskalaan dengan berkongsi beban dan sumber. Dalam Workerman, anda boleh menggunakan dua kaedah berikut

Cara menggunakan MongoDB untuk melaksanakan fungsi pengelompokan data dan pengimbangan beban Pengenalan: Dalam era data besar hari ini, pertumbuhan pesat volum data telah mengemukakan keperluan yang lebih tinggi untuk prestasi pangkalan data. Untuk memenuhi keperluan ini, pengelompokan data dan pengimbangan beban telah menjadi cara teknikal yang sangat diperlukan. Sebagai pangkalan data NoSQL yang matang, MongoDB menyediakan fungsi dan alatan yang kaya untuk menyokong pengelompokan data dan pengimbangan beban. Artikel ini akan memperkenalkan cara menggunakan MongoDB untuk melaksanakan fungsi pengelompokan data dan pengimbangan beban serta menyediakan kod khusus.

Bagaimana untuk mengkonfigurasi persekitaran kluster pangkalan data MySQL? Pengenalan: Dengan pembangunan Internet dan pertumbuhan berterusan volum data, pangkalan data telah menjadi salah satu sistem teras yang diperlukan untuk setiap perusahaan. Pada masa yang sama, untuk memastikan ketersediaan data yang tinggi dan keperluan prestasi membaca dan menulis, persekitaran kluster pangkalan data secara beransur-ansur menjadi pilihan perusahaan. Artikel ini akan memperkenalkan cara mengkonfigurasi persekitaran kluster pangkalan data MySQL dan menyediakan contoh kod yang sepadan. 1. Penyediaan persekitaran Sebelum mengkonfigurasi persekitaran kluster pangkalan data MySQL, kita perlu memastikan bahawa persediaan persekitaran berikut telah selesai: Pasang M

Pengerahan kluster MySQL dan ringkasan pengalaman projek penyelenggaraan MySQL adalah salah satu pangkalan data yang paling biasa digunakan dalam pembangunan aplikasi Internet Memandangkan skala perniagaan terus berkembang, MySQL yang berdiri sendiri tidak lagi dapat memenuhi permintaan Penyelesaian kluster MySQL untuk mengembangkan prestasi dan kapasiti pangkalan data. Artikel ini meringkaskan pengalaman dan pengajaran yang dipelajari dalam proses pengerahan dan penyelenggaraan kluster MySQL, dengan harapan dapat membantu pelaksanaan dan kerja penyelenggaraan kluster MySQL semua orang. 1. Penggunaan dan reka bentuk seni bina kluster MySQL kluster MySQL
