Jadual Kandungan
前言
一、下载集群版mysql
二、配置MySQL集群
1、首先将下载压缩包解压到每台电脑的C:/mysql目录下:
2、配置管理节点
3、配置数据节点" >3、配置数据节点
三、启动MySQL集群" >三、启动MySQL集群
1、启动管理节点:" >1、启动管理节点:
2、启动每个数据节点:" >2、启动每个数据节点:
3、启动每个sql节点:" >3、启动每个sql节点:
4、查看每个节点的状态:" >4、查看每个节点的状态:
三、测试MySQL集群" >三、测试MySQL集群
1、在sql节点A建立数据库并插入数据:" >1、在sql节点A建立数据库并插入数据:
2、在sql节点B也可以查询到数据。" >2、在sql节点B也可以查询到数据。
Rumah pangkalan data tutorial mysql 在Windows环境下配置MySQL集群_MySQL

在Windows环境下配置MySQL集群_MySQL

Jun 02, 2016 am 08:49 AM
persekitaran kelompok

前言


最近在项目中用到了MySQL集群,所以就和小伙伴们研究了两天。下面给大家分享一下成果。

小编始终觉得对新事物的学习,没有比看图这种方式更好地理解了。所以先来看一张mysql集群的架构图(摘自百度百科-MySQL Cluster):

这里写图片描述

上图一共分了四层:Applications、SQL、Storage、Management。
如果您的英语不是体育老师教的的话,那么您肯定已经猜出来每一层的职责了:

—–Applications主要是指需要连接数据库的应用程序;
—–SQL中每一个mysqld都是一个sql节点,Applications需要通过连接sql节点来存储数据,您可以把它看成应用程序与数据库集群进行数据交换的大门
—–Storage有‘仓库’的意思,所以数据都是存在数据节点(ndbd)中的,而且每个数据节点的数据都是一致的,都是一整套最新的数据
—–Management中就是管理节点,一个MySQL中只有一个管理节点,用来管理其他节点

综上所述,一个MySQL集群中包括三种节点(不包括Applications):管理节点、数据节点,sql节点。


一、下载集群版mysql

下载mysql-cluster-gpl-7.4.7-win32或mysql-cluster-gpl-7.4.7-winx64

下载地址:http://yunpan.cn/cd892RtysQ3Vk (提取码:45c8)
MySQL官网下载地址:http://dev.mysql.com/downloads/cluster/


二、配置MySQL集群

需要用三台机器(没有条件的朋友可以考虑用虚拟机),一台配置管理节点:另外两台每台配置一个数据节点和一个SQL节点(也可以用五台计算机,每台计算机配置一个节点):
管理节点:192.168.25.50
数据节点A:192.168.25.49
数据节点B:192.168.25.48
SQL节点A:192.168.25.49
SQL节点B:192.168.25.48

1、首先将下载压缩包解压到每台电脑的C:/mysql目录下:

这里写图片描述

当然放在其他盘的目录里也可以。

2、配置管理节点

在配置管理节点(192.168.25.50)的计算机上的C:\Mysql\Bin目录下建立cluster-logs和config两个文件夹。cluster-logs用来存储日志文件,在config文件夹中建立my.ini和config.ini两个配置文件:

my.ini

<code class="hljs ruby">[mysql_cluster] 
# Options for management node process 
config-file=C:/mysql/bin/config/config.ini</code>
Salin selepas log masuk

config.ini

<code class="hljs ruby"><code class="hljs ruby">[ndbd default] 
# Options affecting ndbd processes on all data nodes: 
NoOfReplicas=2                      # Number of replicas 
DataDir=C:/mysql/bin/cluster-data   # Directory for each data node&#39;s data files 
                                    # Forward slashes used in directory path, 
                                    # rather than backslashes. This is correct; 
                                    # see Important note in text 

DataMemory=80M                      # Memory allocated to data storage 
IndexMemory=18M                     # Memory allocated to index storage 
                                    # For DataMemory and IndexMemory, we have used the 
                                    # default values. Since the "world" database takes up 
                                    # only about 500KB, this should be more than enough for 
                                    # this example Cluster setup.

[ndb_mgmd] 
# Management process options: 
HostName=192.168.25.50              # Hostname or IP address of management node 
DataDir=C:/mysql/bin/cluster-logs   # Directory for management node log files

[ndbd] 
# Options for data node "A":     
HostName=192.168.25.49              # Hostname or IP address

[ndbd] 
# Options for data node "B":
HostName=192.168.25.48              # Hostname or IP address

[mysqld] 
# SQL node A options:
HostName=192.168.25.49              # Hostname or IP address

[mysqld] 
# SQL node B options:
HostName=192.168.25.48              # Hostname or IP address</code></code>
Salin selepas log masuk

<code class="hljs ruby">3、配置数据节点

<code class="hljs ruby">在配置数据节点(192.168.25.48、192.168.25.49)的计算机上的C:\Mysql\Bin目录下建立cluster-data文件夹,用来存放数据:

<code class="hljs ruby">SQL节点不用任何配置,至此,整个MySQL集群就搭建完成了。

<code class="hljs ruby">三、启动MySQL集群


<code class="hljs ruby">启动MySQL集群时,有一个启动顺序:先启动管理节点,再启动数据节点,再启动sql节点。

<code class="hljs ruby">1、启动管理节点:

<code class="hljs ruby">在cmd中运行如下命令

<code class="hljs ruby"><code class="hljs ruby"><code class="hljs tex">c:\mysql\bin\ndb_mgmd.exe --configdir=c:\mysql\bin\config --config-file=c:\mysql\bin\config\config.ini --ndb-nodeid=1 --reload &ndash;initial</code></code></code>
Salin selepas log masuk

<code class="hljs ruby"><code class="hljs tex"><img src="/static/imghw/default1.png" data-src="http://img.bitscn.com/upimg/allimg/c150828/1440K00Q50-3M20.jpg" class="lazy" alt="这里写图片描述" title="\" />

<code class="hljs ruby"><code class="hljs tex">2、启动每个数据节点:

<code class="hljs ruby"><code class="hljs tex">在cmd中运行如下命令:

<code class="hljs ruby"><code class="hljs ruby"><code class="hljs tex"><code class="hljs tex">c:\mysql\bin\ndbd.exe --ndb-connectstring=192.168.25.50</code></code></code></code>
Salin selepas log masuk

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><img src="/static/imghw/default1.png" data-src="http://img.bitscn.com/upimg/allimg/c150828/1440K00QF310-4B34.jpg" class="lazy" alt="这里写图片描述" title="\" />

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex">3、启动每个sql节点:

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex">在cmd中运行如下命令:

<code class="hljs ruby"><code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck">c:\mysql\bin\mysqld.exe --ndbcluster --ndb-connectstring=192.168.25.50 --console</code></code></code></code></code>
Salin selepas log masuk

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><img src="/static/imghw/default1.png" data-src="http://img.bitscn.com/upimg/allimg/c150828/1440K00Q921Z-55413.jpg" class="lazy" alt="这里写图片描述" title="\" />

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck">现在整个MySQL集群就已经启动了。

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck">4、查看每个节点的状态:

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck">在管理节点所在计算机上(192.168.25.50)打开ndb_mgm.exe,或者直接在cmd中运行

<code class="hljs ruby"><code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex">c:\mysql\bin\ndb_mgm</code></code></code></code></code></code>
Salin selepas log masuk

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex">执行&ldquo;show&rdquo;命令,可以查看到每个节点的连接状态:

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><img src="/static/imghw/default1.png" data-src="http://img.bitscn.com/upimg/allimg/c150828/1440K00R15620-A262.jpg" class="lazy" alt="这里写图片描述" title="\" />

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex">这就表明每个节点均连接正常。下面测试数据。

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex">三、测试MySQL集群


<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex">1、在sql节点A建立数据库并插入数据:

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex">在sql节点A的计算机上(192.168.25.49)的cmd中运行C:\mysql\bin\mysql.exe -u root -p命令登录mysql,接下来需要输入密码时,密码默认为空(直接回车)。

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex">创建数据库并插入数据:<br /> &mdash;&ndash;创建名为&rdquo;MySQL_Cluster_Test&rdquo;的数据库:

<code class="hljs ruby"><code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><code class="hljs sql"> create database MySQL_Cluster_Test;</code></code></code></code></code></code></code>
Salin selepas log masuk

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><code class="hljs sql">&mdash;&ndash;创建表&rdquo;T_User&rdquo;:

<code class="hljs ruby"><code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><code class="hljs sql"><code class="hljs sql">use MySQL_Cluster_Test;
create table T_User(Name varchar(32),Age int) engine=ndbcluster;</code></code></code></code></code></code></code></code>
Salin selepas log masuk

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><code class="hljs sql"><code class="hljs sql">注意建表语句后面一定要加上 engine=ndbcluster

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><code class="hljs sql"><code class="hljs sql">&mdash;&ndash;插入数据:

<code class="hljs ruby"><code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql">insert into T_User values(&#39;DannyHoo&#39;,26);</code></code></code></code></code></code></code></code></code>
Salin selepas log masuk

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql">&mdash;&ndash;查询数据:

<code class="hljs ruby"><code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql">select * from T_User;</code></code></code></code></code></code></code></code></code></code>
Salin selepas log masuk

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql"><img src="/static/imghw/default1.png" data-src="http://img.bitscn.com/upimg/allimg/c150828/1440K00R32Q0-L038.jpg" class="lazy" alt="这里写图片描述" title="\">

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql">2、在sql节点B也可以查询到数据。

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql">同样在sql节点B的计算机上(192.168.25.48)的cmd中运行C:\mysql\bin\mysql.exe -u root -p命令登录mysql。

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql">执行 show databases; 命令可以查看到在sql节点A新建的数据库;<br> 执行use MySQL_Cluster_Test;<br>     select * from T_User;<br> 可以查询到在sql节点A插入的数据。

<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql"><img src="/static/imghw/default1.png" data-src="http://img.bitscn.com/upimg/allimg/c150828/1440K00R56250-Y330.jpg" class="lazy" alt="这里写图片描述" title="\">


<code class="hljs ruby"><code class="hljs tex"><code class="hljs tex"><code class="hljs brainfuck"><code class="hljs tex"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql"><code class="hljs sql">到这里,整个集群的搭建和测试就完成了。假如一个数据节点宕机,并不会影响整个集群的运行,任何一个数据节点死掉甚至物理损坏都不用担心,因为每个数据节点保存的数据都是完整的一份数据(在你操作数据的时候,它早就自动为你把最新的数据备份到每一个数据节点上啦)。你可以测试一下,这时手动停止某个数据节点和sql节点,另外一个数据节点和sql节点还会正常运行。当你把停止的数据节点和sql节点重新启动时,会发现又重新连接到集群里了,而且每个数据节点的数据都是最新的。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Tidak dapat boot ke dalam persekitaran pemulihan Windows Tidak dapat boot ke dalam persekitaran pemulihan Windows Feb 19, 2024 pm 11:12 PM

Persekitaran Pemulihan Windows (WinRE) ialah persekitaran yang digunakan untuk membaiki ralat sistem pengendalian Windows. Selepas memasuki WinRE, anda boleh melakukan pemulihan sistem, tetapan semula kilang, menyahpasang kemas kini, dsb. Jika anda tidak dapat boot ke WinRE, artikel ini akan membimbing anda melalui pembetulan untuk menyelesaikan isu tersebut. Tidak dapat boot ke dalam Persekitaran Pemulihan Windows Jika anda tidak boleh but ke dalam Persekitaran Pemulihan Windows, gunakan pembetulan yang disediakan di bawah: Semak status Persekitaran Pemulihan Windows Gunakan kaedah lain untuk memasuki Persekitaran Pemulihan Windows Adakah anda secara tidak sengaja memadam Pembahagian Pemulihan Windows? Lakukan peningkatan di tempat atau pemasangan bersih Windows di bawah, kami telah menerangkan semua pembaikan ini secara terperinci. 1] Semak Wi

Apakah perbezaan antara Python dan Anaconda? Apakah perbezaan antara Python dan Anaconda? Sep 06, 2023 pm 08:37 PM

Dalam artikel ini, kita akan belajar tentang perbezaan antara Python dan Anaconda. Apakah Python? Python ialah bahasa sumber terbuka yang memberi penekanan yang besar untuk menjadikan kod mudah dibaca dan difahami dengan menginden baris dan menyediakan ruang kosong. Fleksibiliti dan kemudahan penggunaan Python menjadikannya sesuai untuk pelbagai aplikasi, termasuk tetapi tidak terhad kepada pengkomputeran saintifik, kecerdasan buatan dan sains data, serta mencipta dan membangunkan aplikasi dalam talian. Apabila Python diuji, ia segera diterjemahkan ke dalam bahasa mesin kerana ia adalah bahasa yang ditafsirkan. Sesetengah bahasa, seperti C++, memerlukan kompilasi untuk difahami. Kemahiran dalam Python adalah kelebihan penting kerana ia sangat mudah difahami, dibangunkan, dilaksanakan dan dibaca. Ini menjadikan Python

Node berpindah sepenuhnya daripada Proxmox VE dan menyertai semula kluster Node berpindah sepenuhnya daripada Proxmox VE dan menyertai semula kluster Feb 21, 2024 pm 12:40 PM

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

Cara menggunakan Docker untuk mengurus dan mengembangkan kluster berbilang nod Cara menggunakan Docker untuk mengurus dan mengembangkan kluster berbilang nod Nov 07, 2023 am 10:06 AM

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

Kaedah pengoptimuman pangkalan data dalam persekitaran konkurensi tinggi PHP Kaedah pengoptimuman pangkalan data dalam persekitaran konkurensi tinggi PHP Aug 11, 2023 pm 03:55 PM

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

11 Cara untuk Menetapkan Pembolehubah Persekitaran pada Windows 3 11 Cara untuk Menetapkan Pembolehubah Persekitaran pada Windows 3 Sep 15, 2023 pm 12:21 PM

Menetapkan pembolehubah persekitaran pada Windows 11 boleh membantu anda menyesuaikan sistem anda, menjalankan skrip dan mengkonfigurasi aplikasi. Dalam panduan ini, kami akan membincangkan tiga kaedah bersama-sama dengan arahan langkah demi langkah supaya anda boleh mengkonfigurasi sistem anda mengikut keinginan anda. Terdapat tiga jenis pembolehubah persekitaran Pembolehubah persekitaran sistem – Pembolehubah global adalah keutamaan paling rendah dan boleh diakses oleh semua pengguna dan aplikasi pada Windows dan biasanya digunakan untuk menentukan tetapan seluruh sistem. Pembolehubah Persekitaran Pengguna – Keutamaan yang lebih tinggi, pembolehubah ini hanya digunakan pada pengguna semasa dan proses yang dijalankan di bawah akaun tersebut, dan ditetapkan oleh pengguna atau aplikasi yang dijalankan di bawah akaun tersebut. Pembolehubah persekitaran proses – mempunyai keutamaan tertinggi, ia bersifat sementara dan digunakan pada proses semasa dan sub-prosesnya, menyediakan program

Apakah pakej persekitaran bersepadu PHP? Apakah pakej persekitaran bersepadu PHP? Jul 24, 2023 am 09:36 AM

Pakej persekitaran bersepadu PHP termasuk: 1. PhpStorm, persekitaran bersepadu PHP yang berkuasa 2. Eclipse, persekitaran pembangunan bersepadu sumber terbuka 3. Kod Visual Studio, editor kod sumber terbuka yang ringan; , digunakan secara meluas dalam pelbagai bahasa pengaturcaraan 5. NetBeans, persekitaran pembangunan bersepadu yang dibangunkan oleh Yayasan Perisian Apache 6. Zend Studio, persekitaran pembangunan bersepadu yang direka untuk pembangun PHP.

Apakah kluster biasa dalam php? Apakah kluster biasa dalam php? Aug 31, 2023 pm 05:45 PM

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.

See all articles