Maison > Article > base de données > Comment installer plusieurs instances MySQL sur le même serveur
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 :
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 :
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
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
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
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
[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
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
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
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
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 :
[mysqld]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
symbolic-links = 0
[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
[mysqld2]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
symbolic-links = 0
[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
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!