Maison  >  Article  >  base de données  >  Comment installer plusieurs instances MySQL sur le même serveur

Comment installer plusieurs instances MySQL sur le même serveur

PHPz
PHPzoriginal
2023-04-20 13:47:131819parcourir

MySQL est un système de gestion de bases de données relationnelles open source largement utilisé dans la gestion des données de diverses applications. En utilisation réelle, il est parfois nécessaire d'installer plusieurs instances MySQL en même temps pour prendre en charge différentes applications ou scénarios. Cet article explique comment installer plusieurs instances MySQL sur le même serveur.

1. Préparatifs avant l'installation

Avant d'installer plusieurs instances de MySQL, vous devez effectuer les préparatifs suivants :

  1. Préparez plusieurs packages d'installation de MySQL Vous pouvez télécharger la version adaptée à votre environnement sur le site officiel de MySQL : https : //dev.mysql.com/downloads/
  2. Préparez plusieurs répertoires de données MySQL Vous pouvez créer différents répertoires pour prendre en charge différentes instances MySQL, telles que : /data/mysql1, /data/mysql2, etc.
  3. Pour chaque instance MySQL, configurez un utilisateur MySQL indépendant, qui dispose du chemin d'installation MySQL et des autorisations de répertoire de données correspondantes.

2. Installez plusieurs instances MySQL basées sur des packages binaires

Voici les étapes pour installer plusieurs instances MySQL basées sur des packages binaires :

  1. Extractez le package d'installation MySQL et renommez-le

Après avoir décompressé les multiples installations MySQL packages, vous pouvez le renommer sous un nom différent pour le distinguer plus facilement, par exemple : mysql1, mysql2, etc.

$ tar -zxvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.gz
$ mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql1
$ tar -zxvf mysql-8.0.22 -linux-glibc2.12-x86_64.tar.gz
$ mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql2

  1. Initialiser le répertoire de données

Chaque instance MySQL nécessite un répertoire de données indépendant, requis Initialiser à l'aide de la commande mysql_install_db. Voici les commandes pour initialiser les instances mysql1 et mysql2 :

$ cd mysql1
$ bin/mysqld --initialize --user=mysql --basedir=/share/opt/mysql1 --datadir=/data/mysql1
$ cd ./mysql2
$ bin/mysqld --initialize --user=mysql --basedir=/share/opt/mysql2 --datadir=/data/mysql2

  1. Installez le service MySQL

Pour chaque instance MySQL , obligatoire Utilisez la commande mysqld_safe pour installer le service MySQL. Voici la commande pour installer les instances mysql1 et mysql2 :

$ cp support-files/mysql.server /etc/init.d/mysql1
$ cp support-files/. mysql.server /etc/init .d/mysql2
$ chmod +x /etc/init.d/mysql1
$ chmod +x /etc/init.d/mysql2
$ chkconfig --add mysql1
$ chkconfig --add mysql2
$ service mysql1 start
$ service mysql2 start

  1. Configurer l'instance MySQL

Pour chaque instance MySQL, un fichier de configuration indépendant my.cnf est requis. Vous pouvez créer un fichier my.cnf dans le répertoire d'installation de MySQL. Voici un exemple du fichier my.cnf. :

[mysqld]
datadir=/data/mysql1
socket=/share/tmp/mysql1.sock
port = 3306
user=mysql
log-error=/data. /mysql1/mysql.err
pid-file= /share/tmp/mysql1.pid

Ce qui suit est la configuration de l'instance mysql2

[mysqld2]
datadir=/data/mysql2
socket=/share/tmp/ mysql2.sock
port = 3307
user=mysql
log- error=/data/mysql2/mysql.err
pid-file=/share/tmp/mysql2.pid

  1. Configurer l'utilisateur MySQL

Utilisez la commande suivante pour créer un utilisateur MySQL et accorder les autorisations de répertoire correspondantes :

$ useradd - r -g mysql -s /bin/false mysql1
$ useradd -r -g mysql -s /bin/false mysql2
$ chown -R mysql : mysql /data/mysql1
$ chown -R mysql:mysql /data/mysql2
$ chown -R mysql:mysql /share/opt/mysql1
$ chown -R mysql:mysql /share/opt/mysql2

3 Installer. plusieurs instances MySQL basées sur des conteneurs Docker

  1. Préparer l'environnement Docker

Obligatoire Installez d'abord l'environnement Docker sur le serveur et extrayez l'image MySQL Docker. Voici la commande pour extraire la dernière version de l'image MySQL :

$. docker pull mysql/mysql-server:latest

  1. Démarrez le conteneur MySQL

Vous pouvez démarrer plusieurs conteneurs MySQL pour répondre aux besoins de plusieurs instances. Vous pouvez distinguer différentes instances en spécifiant différents ports, volumes de données et fichiers de configuration. . Voici un exemple de commande pour démarrer deux instances MySQL différentes :

$ docker run --name=mysql1 -d
-e MYSQL_ROOT_PASSWORD=your_password
-p 3306:3306
-v /data/mysql1:/var/lib/ mysql
-v /share/opt/mysql1:/etc/mysql
mysql/mysql-server:latest
$ docker run --name=mysql2 -d
-e MYSQL_ROOT_PASSWORD=votre_mot de passe
-p 3307:3306
-v / data /mysql2:/var/lib/mysql
-v /share/opt/mysql2:/etc/mysql
mysql/mysql-server:latest

  1. Configuration des instances MySQL

peut être créée séparément dans différents volumes de données Différentes configurations les fichiers my.cnf sont ensuite montés respectivement dans différents conteneurs. Voici un exemple de my.cnf :

Ce qui suit est la configuration de l'instance mysql1

[mysqld]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock

Remarque : ce paramètre n'est valable que pour MySQL 5.7 ou version antérieure

symbolic-links = 0

Configuration MySQL personnalisée

[mysqld]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld. sock
port = 3306
user = mysql
log-error = /var/lib/mysql/mysql.err
pid-file = /var/run/mysqld/mysqld.pid

Ce qui suit est la configuration de l'instance mysql2

[mysqld2]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
symbolic-links = 0

Configuration MySQL personnalisée

[mysqld2]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
port = 3307
user = mysql
log-error = /var/lib /mysql /mysql.err
pid-file = /var/run/mysqld/mysqld.pid

  1. Utilisation de plusieurs instances MySQL

Après avoir configuré plusieurs instances MySQL, vous pouvez vous connecter au port correspondant et utiliser les noms d'instance de base de données correspondants et configurer utilisateurs correspondants pour utiliser plusieurs instances MySQL :

mysql -h localhost -u username1 -p -P 3306 -D database1
mysql -h localhost -u username2 -p -P 3307 -D database2

Résumé

Cet article présente comment pour installer plusieurs instances MySQL sur le même serveur, y compris une installation basée sur des packages binaires et une installation basée sur des conteneurs Docker. En utilisant rationnellement plusieurs instances MySQL, différentes applications et scénarios peuvent être mieux pris en charge, et les performances et la fiabilité de la base de données peuvent être améliorées.

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