使用mysql-mmm实现mysql集群部署_MySQL
背景:之前实现的mysql同步复制功能(见笔者之前文章http://blog.csdn.net/kingofworld/article/details/39210937)只是双机热备功能,还不能做到Mysql链接的自动切换。
本配置实现真正的mysql集群,使得在某台机子的mysql应用停止时,能让应用程序自动切换到另外一台机子的mysql连接,实现应用的高稳定性,并且使得扩展Mysql服务成为可能。
本配置使用mysql-mmm(master-master Replication Manager for MySQL)组件实现集群功能。
本次演示的配置使用三台机器,架构如下:
Master1 和Master2两台机器实现双机热备,其中一台机器的mysql服务停止或机器宕机,应用程序都会将数据库连接自动切换到另外一台机子。另外用一台机子实时备份master1的数据。
1、安装mysql-mmm服务
在三台机器都安装
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum -y install mysql-mmm*
完成后查看 rpm -qa|grep mysql-mmm
有以下组件表示安装成功

Rhel5或centos5,32位:http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
Rhel6或centos6,32位:http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
Rhel6或centos6,64位:http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
1、添加mysql的用户
在三台机器都添加mysql用户,分别用于复制、
进入mysql服务mysql -u root -p
use mysql;
grant REPLICATION slave,REPLICATION CLIENT on *.* to 'repl'@'%' identified by 'password'; //建立复制用户
grant PROCESS,SUPER,REPLICATION CLIENT on *.* to 'mmm_agent'@'%' identified by 'password'; //建立agent用户
grant REPLICATION CLIENT on *.* to 'mmm_monitor'@'%' identified by 'password'; //建立用户
FLUSH PRIVILEGES;
2、配置同步复制
配置复制的策略如架构图所示。
配置方法在我上一篇文章有介绍过,这里不再重复,见笔者之前文章http://blog.csdn.net/kingofworld/article/details/39210937
3、修改hosts
分别修改三台机器的hosts文件
vi /etc/hosts
添加
200.200.168.24 M1
200.200.168.25 M2
200.200.168.23 slave1
4、配置mysql-mmm
修改 /etc/mysql-mmm/mmm_common.conf 各台机子的配置都一样
active_master_role writer <host default> cluster_interface eth0 pid_path /var/run/mysql-mmm/mmm_agentd.pid bin_path /usr/libexec/mysql-mmm/ replication_user repl replication_password password agent_user mmm_agent agent_password <span style="font-size: 13.3333339691162px;">password</span> </host> <host M1> ip 200.200.168.24 mode master peer M2 </host> <host M2> ip 200.200.168.25 mode master peer M1 </host> <host slave1> ip 200.200.168.23 mode slave </host> <role writer> hosts M1,M2 ips 200.200.168.26 mode exclusive </role> <role reader> hosts M1,M2,slave1 ips 200.200.168.27 mode balanced </role>
注意:200.200.168.26和200.200.168.27是两个虚拟的IP地址,供应用程序调用,只需用两个没人占用的IP就可以,分别用来提供写和读服务,为以后实现数据库的读写分离(但实现读写分离需要修改应用程序,mysql并不能自动识别并切换)。
修改/etc/mysql-mmm/mmm_agent.conf
三台机器分别设置为this M1、this M2、this slave1
修改/etc/mysql-mmm/mmm_mon.conf
只是monitor(200.200.168.24)机子需要配置
include mmm_common.conf <monitor> ip 127.0.0.1 pid_path /var/run/mysql-mmm/mmm_mond.pid bin_path /usr/libexec/mysql-mmm status_path /var/lib/mysql-mmm/mmm_mond.status ping_ips 200.200.168.24,200.200.168.25,200.200.168.23 auto_set_online 10 # The kill_host_bin does not exist by default, though the monitor will # throw a warning about it missing. See the section 5.10 "Kill Host # Functionality" in the PDF documentation. # # kill_host_bin /usr/libexec/mysql-mmm/monitor/kill_host # </monitor> <host default> monitor_user mmm_monitor monitor_password password </host> debug 0
配置完成后运行
三台机子都需运行:
/etc/init.d/mysql-mmm-agent start
Monitor机子运行
/etc/init.d/mysql-mmm-monitor start
5、查看服务状态及测试
在monitor机子运行mmm_control show
可以看到以下信息:

表示写服务器(200.200.168.26)使用的是200.200.168.24
读服务器(200.200.168.27)使用的是200.200.168.25
查看各个服务的状态:
mmm_control checks all

6、测试:
将master1的mysql服务停止,然后mmm_control show查看状态

可以看到读写服务器都转移到了master2,这时服务器master1的流程应用还能够正常使用,可以进行申请流程测试
这时查看mmm_control checks all

将master1 的mysql服务启动,再查看状态:

读写服务器又分开了


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

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

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.

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.

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

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
