Maison base de données tutoriel mysql Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群_MySQL

Ubuntu 12.04 LTS 构建高可用分布式 MySQL 集群_MySQL

Jun 01, 2016 pm 01:28 PM
英文

UbuntuMysql集群

bitsCN.com

本文的英文版本链接是 http://www.mrxuri.com/index.php/2013/11/20/install-mysql-cluster-on-ubuntu-12-04-lts.html

Install MySQL Cluster on Ubuntu 12.04 LTS

MySQL Cluster 是 MySQL 适合于分布式计算环境的高实用、高冗余版本。它采用了 NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求。此外,由于每个组件有自己的内存和磁盘,不存在单点故障。

开发者官方网站 www.oracle.com

在这篇文章中,我会叙述如何 在 Ubuntu 12.04 LTS 构建高可用 MySQL 集群。

1. SQL Cluster 虚拟主机

要创建一个功能齐全的集群,至少需要3 台主机才可以完成。其中一个主机作为管理节点,另外两个做数据节点。如果数据节点脱机,群集仍然可以工作,但是一旦管理节点出现问题,将导致集群无法正常工作,所以在可能的情况下,建立两个管理节点。在我的例子中,我将使用二个管理节点的集群。

这个例子中一共使用了 5 台主机,系统架构如下图所示

Install MySQL Cluster on Ubuntu 12.04 LTS

 

Install MySQL Cluster on Ubuntu 12.04 LTS

虚拟机群平台     VMware ESXi 4.1虚拟机操作系统    Ubuntu 12.04.3 LTS (Precise Pangolin) 64-bit
Copier après la connexion

所有虚拟机都在同一 192.168.67.0/24 网络地址段当中,请根据你的网络情况来具体配置 IP 地址,在开始之前请确保所有主机网络连接设置正常。

2. 安装管理节点

首先,我们需要安装的 MySQL 集群的管理节点。我们将开始与 MySQL-MGM-1,配置完成后按照相同的步骤配置第二个管理节点,如果只设定一个管理节点,那么继续下一步的配置。

在开始配置前,请访问 http://www.mysql.com/downloads/cluster/#downloads 确认当前安装文档的版本信息. 这里我所使用的 MySQL Cluster 版本是 7.3.3.

首先,我们把 MySQL Cluster 安装包下载到管理主机上。进入到 /usr/src 文件夹并创建 mysql-mgm 目录。

mkdir /usr/src/mysql-mgmcd /usr/src/mysql-mgm
Copier après la connexion

完成这一步后,在 MySQL 的官方网站下载最新的安装源代码,并解压软件包

wget http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.3-linux-glibc2.5-x86_64.tar.gztar xvfz mysql-cluster-gpl-7.3.3-linux-glibc2.5-x86_64.tar.gz
Copier après la connexion

进入解压缩后的文件夹,然后移动二进制文件

cd mysql-cluster-gpl-7.3.3-linux-glibc2.5-x86_64cp bin/ndb_mgm /usr/bincp bin/ndb_mgmd /usr/bin
Copier après la connexion

更改目录的权限,并可以选择删除下载的源文件

chmod 755 /usr/bin/ndb_mg*cd /usr/srcrm -rf /usr/src/mysql-mgm
Copier après la connexion

接下来,我们创建管理节点配置文件,在 /var/lib/mysql-cluster/ 文件夹中,名字叫做 config.ini ,这个文件夹事先不存在,创建它

mkdir /var/lib/mysql-cluster
Copier après la connexion
Copier après la connexion

在 config.ini 文件创建完成后,使用你喜欢的文本编辑器编辑此文件,内容类似于这样

[NDBD DEFAULT] NoOfReplicas=2DataMemory=80MIndexMemory=18M[MYSQLD DEFAULT] [NDB_MGMD DEFAULT]DataDir=/var/lib/mysql-cluster[TCP DEFAULT] # Section for the cluster management node[NDB_MGMD]NodeId=1# IP address of the first management node (this system)HostName=192.168.67.10 [NDB_MGMD]NodeId=2#IP address of the second management nodeHostName=192.168.67.11 # Section for the storage nodes[NDBD]# IP address of the first storage nodeHostName=192.168.67.12DataDir= /var/lib/mysql-cluster[NDBD]# IP address of the second storage nodeHostName=192.168.67.13DataDir=/var/lib/mysql-cluster# one [MYSQLD] per storage node[MYSQLD][MYSQLD]
Copier après la connexion

所有主机都定义在这个里,即使我们只安装第一个。请注意,管理主机节点需要设定 NodeId,而 NDBD 节点不需要设定.
完成这步操作后,可以用下面的命令启动管理节点

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/
Copier après la connexion

完成这步操作后, 你可以通过下面的命令向 init.d 中添加一个条目,以自动启动程序

echo "ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/" > /etc/init.d/ndb_mgmdchmod 755 /etc/init.d/ndb_mgmd
Copier après la connexion

如果一切顺利,第二个管理节点上遵循相同的步骤,并使用相同的配置。请不要改变的节点配置文件中的 ID

你可以使用 ndb_mgm 命令来验证管理节点的运行,(只需要在终端中输入 ndb_mgm ) ,并通过键入 show,启动配置实用程序。此时 NDBD 节点和 MySQL 节点处于断开状态,需要将所有节点配置完成才可以输出正确的状态。

3. 数据节点
创建数据节点与创建管理节点的过程是类似的。让我们开始创建一个 mysql 组,将用户 mysql 添加到 mysql 组中

groupadd mysqluseradd -g mysql mysql
Copier après la connexion

进入 /usr/local ,并下载和配置管理节点时使用的相同的压缩文档,并解压

cd /usr/local/wget http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.3-linux-glibc2.5-x86_64.tar.gztar xvfz mysql-cluster-gpl-7.3.3-linux-glibc2.5-x86_64.tar.gz
Copier après la connexion

创建一个名为 mysql 指向解压的文件夹(这以后将用于DB集群,所以不要删除它!)的的软连接。创建完成后,你可以安装数据库

ln -s mysql-cluster-gpl-7.3.3-linux-glibc2.5-x86_64 mysqlcd mysqlapt-get install libaio1 libaio-devscripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
Copier après la connexion

修改文件权限

chown -R root:mysql .chown -R mysql data
Copier après la connexion

与管理节点上一样,我们希望的 DataBase 引擎自动启动,因此,我们需要创建 init.d 命令

cp support-files/mysql.server /etc/init.d/chmod 755 /etc/init.d/mysql.server
Copier après la connexion

最后,复制 bin 文件夹到 /usr/bin 的位置,并创建一个符号链接,以保持能够正确的引用

cd /usr/local/mysql/binmv * /usr/bincd ../rm -fr /usr/local/mysql/binln -s /usr/bin /usr/local/mysql/bin
Copier après la connexion

MySQL 配置文件目前不存在,所以我们需要自己创建它。该文件位于 /etc/ 中,并命名为 my.cnf 文件。使用你喜欢的文本编辑器,并添加以下几行

[mysqld]ndbcluster# IP address of the cluster management nodendb-connectstring=192.168.67.10,192.168.67.11[mysql_cluster]# IP address of the cluster management nodendb-connectstring=192.168.67.10,192.168.67.11
Copier après la connexion

请注意,这两个管理节点的地址,使用逗号分隔。如果你只有一个管理节点,只需在列表中删除第二个。一旦 my.cnf 文件已保存,我们需要创建 MySQL 的数据文件夹

mkdir /var/lib/mysql-cluster
Copier après la connexion
Copier après la connexion

完成这些后,我们需要初始化集群并启动该服务。只有当你开始第一次的节点,或当在管理节点上的 /var/lib/mysql-cluster/config.ini 文件被更改时,需要做初始化

cd /var/lib/mysql-clusterndbd –-initial/etc/init.d/mysql.server start
Copier après la connexion

接下来,通过运行相应的脚本安装 MySQL

/usr/local/mysql/bin/mysql_secure_installation
Copier après la connexion

最后,我们需要 NDB 自动启动

echo "ndbd" > /etc/init.d/ndbdchmod 755 /etc/init.d/ndbd
Copier après la connexion

好了,我们已经完成了第一个数据节点的配置,按照相同的方法和步骤去完成第二个数据节点的配置

4.验证与测试

如果一切正常,在管理节点终端中执行命令  ndb_mgm ,然后键入 show. 这个时候应该看到的数据库节点已填充的提示

root@MYSQL-MGM1:~# ndb_mgmndb_mgm> showCluster Configuration---------------------[ndbd(NDB)] 2 node(s)id=3    @192.168.67.12  (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0, *)id=4    @192.168.67.13  (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0) [ndb_mgmd(MGM)] 2 node(s)id=1    @192.168.67.10  (mysql-5.6.14 ndb-7.3.3)id=2    @192.168.67.11  (mysql-5.6.14 ndb-7.3.3) [mysqld(API)]   2 node(s)id=5    @192.168.67.12  (mysql-5.6.14 ndb-7.3.3)id=6    @192.168.67.13  (mysql-5.6.14 ndb-7.3.3)
Copier après la connexion

如果你能够看到类似的输出,去尝试一些基本的SQL命令。登录到SQL数据库,并创建一个新的数据库,表,以验证数据同步。请注意,在创建数据库时,需使用 NDBCLUSTER 存储引擎。如果使用 InnoDB ,数据将不会在集群节点之间被复制。在使用 NDBCLUSTER 引擎时,会有一些问题,请参阅 MySQL 官方网站

http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-limitations-unsupported.html
http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-limitations-syntax.html

mysql -u root -pmysql> CREATE DATABASE mysqlclustertest;mysql> USE mysqlclustertest;mysql> CREATE TABLE testtable (i INT) ENGINE=NDBCLUSTER;mysql> INSERT INTO testtable () VALUES (1);
Copier après la connexion
mysql> SELECT * FROM testtable;+------+| i    |+------+|    1 |+------+
Copier après la connexion
1 row in set (0.01 sec)
Copier après la connexion

连接到第二个数据库节点,我们看看,得到了相同的输出

mysql -u root -pmysql> USE mysqlclustertest;mysql> SELECT * FROM testtable;+------+| i    |+------+|    1 |+------+1 row in set (0.01 sec)
Copier après la connexion

应该看到相同的输出。现在,如果你插入一个新条目表,它会被复制回的第一个节点

5. 负载均衡

在这篇文章的最后部分是为 MySQL 集群安装负载均衡服务器,负载均衡可以使用 mysql-proxy,很容易安装,当然你也可以使用其他服务

root@mysql-proxy:~# apt-get install mysql-proxyroot@mysql-proxy:~# mkdir /etc/mysql-proxyroot@mysql-proxy:~# cd /etc/mysql-proxyroot@mysql-proxy:/etc/mysql-proxy# nano mysql-proxy.conf
Copier après la connexion

在 mysql-proxy.conf 文件中加入下面几行

[mysql-proxy]daemon = trueproxy-address = 192.168.67.14:3306proxy-skip-profiling = truekeepalive = trueevent-threads = 50pid-file = /var/run/mysql-proxy.pidlog-file = /var/log/mysql-proxy.loglog-level = debugproxy-backend-addresses = 192.168.67.12:3306,192.168.67.13:3306proxy-lua-script=/usr/lib/mysql-proxy/lua/proxy/balance.lua
Copier après la connexion

对于自动启动的附加选项创建以下文件 /etc/default/mysql-proxy

ENABLED="true"OPTIONS="--defaults-file=/etc/mysql-proxy.conf --plugins=proxy"
Copier après la connexion

然后,你可以通过调用以下命令启动 mysql-proxy

/etc/init.d/mysql-proxy start/stop/status
Copier après la connexion

完成后,你应该能够连接到 MySQL 服务器使用代理地址。记得这个工作,你需要创建一个新的用户具有特定的子网连接到它。还需要在 my.cnf 文件为 MySQL 服务器添加捆绑地址

SQL用户不用复制,所以相同的用户有单独被添加到所有的数据库节点。在数据节点登录到 SQL shell,执行以下命令

CREATE USER 'newuser'@'192.168.67.%' IDENTIFIED BY 'password';FLUSH PRIVILEGES;SELECT * FROM mysql.user;
Copier après la connexion

更改 newuser,IP和密码,根据你的配置需求。 %作为通配符,从而对整个子网的IP地址的行为,它允许远程连接到这个数据库节点。请记得在这个集群中的节点中添加相同的用户具有相同配置的其他所有数据库


撰写本文参考了这篇文章 MySQL NDB Cluster setup on Ubuntu 12.04 LTS, 做了一些改动。

如果有哪里有误,欢迎指正,这篇文章的英文版本在我的个人网站 www.mrxuri.com 上,链接是 http://www.mrxuri.com/index.php/2013/11/20/install-mysql-cluster-on-ubuntu-12-04-lts.html 欢迎大家访问。

bitsCN.com
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
4 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)

Comment résoudre le problème de l'anglais apparaissant lors du démarrage d'un ordinateur Windows 10 Comment résoudre le problème de l'anglais apparaissant lors du démarrage d'un ordinateur Windows 10 Jul 11, 2023 pm 04:57 PM

De nombreux amis rencontrent toujours divers problèmes lors de l'utilisation d'un ordinateur. Par exemple, après avoir allumé l'ordinateur, ils constatent que l'ensemble de l'ordinateur est passé à l'anglais. De nombreux amis ne savent pas comment le remettre en chinois. L'éditeur ci-dessous vous apprendra comment. pour configurer un ordinateur win10. Comment résoudre le problème de l'anglais apparaissant lors de la mise sous tension de l'ordinateur. 1. Après avoir allumé l'ordinateur, cliquez sur "Démarrer - Paramètres" dans le coin inférieur gauche. Comme le montre la figure : 2. Après avoir accédé à l'interface des paramètres Windows, cliquez sur « Heure et langue ». Comme le montre la figure : 3. Après avoir entré l'interface d'heure et de langue, cliquez sur « Région et langue ». Comme le montre la figure : 4. Après avoir accédé à l'interface de région et de langue, cliquez sur "Gérer les paramètres de langue". Comme le montre la figure : 5. Après être entré dans l'interface de gestion, cliquez sur « Copier les paramètres ». Comme le montre la figure : 6. Entrez les paramètres de l'écran d'accueil.

Comment passer Google Chrome en mode chinois ? Comment passer Google Chrome en mode chinois ? Mar 13, 2024 pm 07:31 PM

Comment changer le chinois en anglais dans Google Chrome ? Certains amis souhaitent régler Google Chrome sur l'anglais afin de pouvoir améliorer continuellement leur anglais pendant leur utilisation. Alors comment le mettre en anglais ? Google Chrome est le chinois par défaut. Ci-dessous, je vais vous montrer comment définir la langue de Google Chrome sur l'anglais. Étapes de configuration : 1. Ouvrez [Google Chrome], comme indiqué dans la figure ci-dessous. 2. Cliquez sur le menu [trois points] dans le coin supérieur droit de l'interface de Google Chrome, comme indiqué dans la figure ci-dessous. 3. Après être entré dans la page de menu, recherchez [Paramètres], comme indiqué dans la figure ci-dessous. 4. Après avoir accédé à la page des paramètres, cliquez sur l'option [Langue], comme indiqué dans la figure ci-dessous. 5. Sélectionnez [Ajouter une langue] dans l'interface linguistique, comme indiqué dans la figure ci-dessous.

Comment masquer le clavier anglais dans Win11 Comment masquer le clavier anglais dans Win11 Jan 03, 2024 pm 09:45 PM

Certains amis n'ont pas besoin d'utiliser le clavier anglais, mais doivent uniquement utiliser le clavier chinois. Pour le moment, ils trouveront le clavier anglais très gênant et voudront le masquer. Cependant, nous ne pouvons pas le masquer, mais nous pouvons le supprimer directement. la méthode de saisie en anglais. Suivons l'éditeur. Comment masquer le clavier anglais dans win11 1. Le clavier anglais ne peut pas être masqué, mais nous pouvons le supprimer directement dans la méthode de saisie. 2. Entrez d'abord « Paramètres » via le menu Démarrer 3. Sélectionnez ensuite « Heure et langue » 4. Entrez ensuite « Langue et région » et cliquez sur « Ajouter un clavier » ci-dessous pour ajouter des raccourcis clavier. 5. Cliquez ensuite sur la méthode de saisie souhaitée, puis cliquez sur la flèche dans le coin inférieur gauche pour la déplacer vers

Comment corriger la méthode de saisie fournie avec Windows 10 en anglais Comment corriger la méthode de saisie fournie avec Windows 10 en anglais Jan 15, 2024 pm 01:48 PM

De nombreux amis qui travaillent sur l'ordinateur utilisent la méthode de saisie en anglais pour travailler. À l'heure actuelle, ils doivent verrouiller la saisie en anglais. Alors, comment la verrouiller ? Jetons un coup d'œil aux méthodes détaillées ci-dessous. Comment verrouiller la méthode de saisie fournie avec Win10 en anglais : 1. Cliquez sur le logo de la méthode de saisie dans le coin inférieur droit du bureau, puis cliquez sur « Préférences de langue ». 2. Cliquez ensuite sur « Ajouter une langue préférée » sous la langue préférée. 3. Entrez l'anglais dans la boîte de dialogue et cliquez pour installer la langue. 4. Une fois l'installation terminée, cliquez sur « Définir comme langue par défaut ».

Comment résoudre le problème de l'affichage en anglais des icônes de l'ordinateur Win10 Comment résoudre le problème de l'affichage en anglais des icônes de l'ordinateur Win10 Dec 23, 2023 pm 09:59 PM

De nombreux utilisateurs constatent que lorsqu'ils utilisent des ordinateurs, toutes les icônes sur leurs écrans d'ordinateur sont devenues en anglais, et même les menus sont devenus en anglais. Il suffit de modifier la langue par défaut du système. Si cela ne fonctionne pas, changez de région. Que dois-je faire si Win10 affiche que l'icône de mon ordinateur est devenue anglaise ? Solution : 1. Ouvrez Paramètres dans le menu Démarrer, puis sélectionnez. 2. Ensuite, sélectionnez et cliquez ci-dessous. 3. Si l'opération ci-dessus ne résout pas le problème, nous pouvons le modifier depuis le panneau de commande.

Comment définir la langue de Windows 10 Home Edition sur l'anglais Comment définir la langue de Windows 10 Home Edition sur l'anglais Feb 14, 2024 pm 07:36 PM

Dans le système d'exploitation Windows, nous pouvons facilement activer différentes langues pour faciliter l'affichage du système, améliorant ainsi encore l'expérience utilisateur et l'efficacité de la communication. Ouvrez l'interface des paramètres système, puis sélectionnez l'option « Méthode de saisie et clavier », puis cliquez pour ajouter la langue sélectionnée dans cette interface. Comment définir la langue de Windows 10 Home Edition sur l'anglais 1. Cliquez sur Démarrer pour accéder aux paramètres 2. Cliquez sur pour saisir l'heure et la langue 3. Sélectionnez « Région et langue », puis cliquez sur « Ajouter une langue » 4. Sélectionnez Anglais (États-Unis)

Partage du plan de mise en œuvre pour la conversion des mois en anglais en programmation PHP Partage du plan de mise en œuvre pour la conversion des mois en anglais en programmation PHP Mar 22, 2024 am 08:24 AM

Les mois doivent souvent être convertis en anglais dans la programmation PHP. Ceci est particulièrement courant dans certains projets, tels que la génération de rapports mensuels, l'affichage de calendriers, etc. Partageons un plan de mise en œuvre pour démontrer comment convertir les mois en anglais à travers des exemples de code spécifiques. En PHP, la conversion des mois peut être réalisée en établissant une relation de mappage entre le numéro du mois et le nom anglais correspondant. Tout d'abord, vous pouvez définir un tableau contenant les noms anglais de tous les mois, puis rechercher les noms anglais correspondants dans le tableau en fonction des numéros de mois. //Définit un tableau contenant le nom anglais du mois

Compétences en programmation PHP : gérer les problèmes d'écriture en anglais Compétences en programmation PHP : gérer les problèmes d'écriture en anglais Mar 06, 2024 pm 06:06 PM

Conseils de programmation PHP : résoudre les problèmes écrits en anglais PHP est un puissant langage de script côté serveur largement utilisé dans le domaine du développement Web. Dans le processus de programmation PHP, nous rencontrons souvent le problème du traitement de l'écriture anglaise, notamment lors du traitement des opérations d'E/S sur les fichiers ou des opérations sur la base de données. Cet article explorera comment gérer les problèmes d'écriture en anglais en PHP et fournira des exemples de code spécifiques. 1. Problèmes d'encodage Unicode Lorsque vous traitez des problèmes d'écriture en anglais, vous devez d'abord comprendre l'encodage Unicode. Unicode est un mot

See all articles