Maison >base de données >tutoriel mysql >Comment installer plusieurs MySQL sur le même serveur
1. Préparatifs avant l'installation
Avant d'installer plusieurs instances de MySQL, vous devez effectuer les préparations suivantes :
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/
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. .
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 :
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
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
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
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
[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
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
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
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
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 :
[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
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!