Maison >base de données >tutoriel mysql >Linux utilise mysqld_multi pour démarrer plusieurs instances MySQL sur une seule machine

Linux utilise mysqld_multi pour démarrer plusieurs instances MySQL sur une seule machine

黄舟
黄舟original
2017-03-10 11:13:231025parcourir

1. Description du contexte

Dans le passé, lors de l'utilisation de MySQL, il était principalement utilisé pour utiliser un seul schéma MySQL ou plusieurs schémas, mais ils se trouvaient généralement dans la même instance de base de données, c'est-à-dire le même port.
Dans la sauvegarde à chaud bidirectionnelle sur deux machines MySQL, le schéma myql sur la machine A (appelé provisoirement A) doit être utilisé comme nœud maître dans la sauvegarde à chaud (réplication mysql) et le schéma mysql de sauvegarde (appelé provisoirement B) existe dans une autre Machine B. Ensuite, dans la sauvegarde à chaud bidirectionnelle, B doit également être configuré en tant que maître et A est configuré en tant qu'esclave. Pour parler franchement, la sauvegarde à chaud est configurée deux fois, maintenant la sauvegarde à chaud de la machine A est terminée. et c'est au tour de B. Nous avons mentionné qu'il existe également un schéma mysql (C) sur la machine B, qui doit également être configuré en tant que maître, et que le schéma de sauvegarde est placé sur la machine A, mais voici le problème : le schéma mysql de sauvegarde (B) vient de été configuré avec MySQL lors de la configuration du numéro de port et du maître de secours. Le rôle est lié. À ce stade, si C est configuré en tant que maître, la configuration précédente de B en tant que maître sera écrasée. Ensuite, lorsque la base de données de sauvegarde (D) sera configurée en tant que maître sur la machine A, A sera configuré en tant que maître. Opération couverte.
Ainsi, dans ce processus, la configuration de la veille chaude bidirectionnelle des schémas A et B est terminée sur le port par défaut 3306 sur les deux machines respectivement. Lors de la configuration de la veille chaude bidirectionnelle des schémas C et D, vous devez. configurer la veille chaude bidirectionnelle des schémas C et D sur les deux machines respectivement Terminé dans différentes instances mysql (différents numéros de port), ce qui suit explique comment démarrer plusieurs instances mysql.

2. Étapes d'implémentation

(1) Par défaut, mysql a été installé et la configuration de base a été implémentée.

(2) Configurer my.cnf (écrire uniquement la configuration liée à cet article)

[mysqld_multi]

mysqld = /opt/mysql/server-5.6/bin/mysqld_safe #根据自己的mysql目录配置
mysqladmin = /opt/mysql/server-5.6/bin/mysqladmin

[mysqld1]
port = 3307
socket = /tmp/mysql.sock1
pid-file   = /opt/mysql/server-5.6/data3307/cloud3.pid3
basedir=/opt/mysql/server-5.6
datadir=/opt/mysql/server-5.6/data3307
log-bin=mysql1-9003-bin
user=cloud1

[mysqld2]
port = 3308
socket = /tmp/mysql.sock2
pid-file   = /opt/mysql/server-5.6/data3308/cloud3.pid2
basedir=/opt/mysql/server-5.6
datadir=/opt/mysql/server-5.6/data3308
log-bin=mysql2-9003-bin
user=cloud1

(3) Initialiser le répertoire de la base de données (selon le répertoire pointant dans la configuration)

cd /opt/mysql/server-5.6/;./scripts/mysql_install_db --datadir=/opt/mysql/server-5.6/data3307 --user=cloud1
cd /opt/mysql/server-5.6/;./scripts/mysql_install_db --datadir=/opt/mysql/server-5.6/data3308 --user=cloud1

Si l'initialisation réussit, OK sera demandé. Sinon, vérifiez si le répertoire de la base de données dispose des autorisations.

(4) Démarrez l'instance

Utilisez les paramètres suivants pour démarrer mysqld_multi : (Remarque : cette commande se trouve dans le répertoire bin de mysql).

 mysqld_multi [options] [GNR[,GNR]...]

démarrer, arrêter et signaler font référence aux opérations que vous souhaitez effectuer. Vous pouvez spécifier une opération sur un seul service ou sur plusieurs services, à la différence de la liste GNR suivant les options. Si aucune liste GNR n'est spécifiée, mysqld_multi fonctionnera selon le fichier d'options dans tous les services.
La valeur de chaque GNR est le numéro de séquence du groupe ou la plage de numéros de séquence d'un groupe. La valeur de cet élément doit être le dernier numéro du nom du groupe. Par exemple, si le nom du groupe est mysqld17, alors la valeur de cet élément est 17. Si vous spécifiez une plage, utilisez "-" (tiret) pour relier les deux nombres. Si la valeur de GNR est 10-13, elle fait référence au groupe mysqld10 au groupe mysqld13.

mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 1-2
或者
mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 1
mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 2

(5) Changer le mot de passe et se connecter

mysqladmin -u root -p -P 3307 -S /tmp/mysql.sock1 password  //刚开始默认没有密码,如果要输入密码,直接回车
mysql -u root -p -P 3307 -S /tmp/mysql.sock1

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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