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

Comment installer plusieurs MySQL sur le même serveur

WBOY
WBOYavant
2023-05-29 12:10:272771parcourir

1. Préparatifs avant l'installation

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

  1. Préparez plusieurs packages d'installation de MySQL, vous pouvez télécharger celui qui convient à votre environnement depuis le site officiel de MySQL Site Web Version téléchargée : 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, par exemple : /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 du répertoire de données correspondants.

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. Décompressez le package d'installation MySQL et renommez-le

Intégrer plusieurs instances MySQL Une fois le package d'installation décompressé, vous pouvez le renommer sous un nom différent pour faciliter la distinction, tel que : 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. Initialisez le répertoire de données

Après l'initialisation à l'aide de la commande mysql_install_db, chaque MySQL instance Doit avoir son propre répertoire de données indépendant. 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 chacun. Instance MySQL, vous devez utiliser 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 mon exemple de fichier 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. Installez plusieurs instances MySQL basées sur des conteneurs Docker

  1. Préparez l'environnement Docker

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

$ docker pull mysql/mysql-server:latest

  1. Démarrer le conteneur MySQL

Vous pouvez répondre aux exigences multi-instances en démarrant plusieurs conteneurs MySQL, et 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. Configurer l'instance MySQL

Accrochez-les dans différents conteneurs Chargez différentes données volumes, chaque volume de données contient un fichier de configuration spécifique my.cnf. 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. Utiliser plusieurs instances MySQL

Après avoir configuré plusieurs instances MySQL, vous pouvez vous connecter au port correspondant, utiliser le nom de l'instance de base de données correspondante et configurer les 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

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer