2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Sur les systèmes Linux, par défaut, MySQL (ou MariaDB, un fork MySQL populaire) ne prend pas directement en charge l'exécution de plusieurs instances MySQL sur la même machine, chaque instance utilisant un port différent et un système de mot de passe indépendant. Cependant, vous pouvez y parvenir en configurant plusieurs instances MySQL (également appelées multi-instances). Cela implique généralement la configuration de différents ports, répertoires de données, fichiers de configuration et éventuellement autorisations utilisateur pour chaque instance.
Voici les étapes de base pour configurer plusieurs instances MySQL :
Assurez-vous d'avoir une installation MySQL fonctionnelle. Ce guide suppose que vous utilisez MySQL, mais si vous utilisez MariaDB, les étapes sont très similaires.
Créez un nouveau répertoire de données pour chaque instance MySQL :
sudo mkdir -p /data/mysql1 /data/mysql2 | |
sudo chown -R mysql:mysql /data/mysql1 /data/mysql2 |
ici/data/mysql1
et/data/mysql2
sont les répertoires de données de deux instances différentes.
Le fichier de configuration par défaut pour MySQL est généralement/etc/my.cnf
(ou/etc/mysql/my.cnf
, selon votre distribution). Vous devez créer un nouveau fichier de configuration pour chaque instance.
sudo cp /etc/my.cnf /etc/mysql1.cnf | |
sudo cp /etc/my.cnf /etc/mysql2.cnf |
Modifiez les sections suivantes de chaque fichier de configuration :
[mysqld]
Paramètres sous la sectiondatadir
pour les répertoires de données nouvellement créés (par ex./data/mysql1
ou/data/mysql2
)。port
(Par exemple, la première instance utilise 3306, la deuxième instance utilise 3307).socket
chemins, en veillant à ce qu’ils soient uniques.user
etlog_error
et d'autres options pour garantir que l'instance s'exécute de manière indépendante. Pour les nouvelles instances MySQL, vous devez initialiser le répertoire de données.Cela implique généralement de courirmysqld --initialize
oumysql_install_db
(Selon votre version de MySQL). Notez que cela peut écraser toutes les données existantes.
sudo mysqld --initialize --user=mysql --datadir=/data/mysql1 | |
sudo mysqld --initialize --user=mysql --datadir=/data/mysql2 |
Vous devez écrire un script de démarrage pour chaque instance ou utilisersystemd
fichiers unitaires pour les gérer. Ceci est souvent complexe et doit être personnalisé en fonction de vos besoins spécifiques et de votre environnement système.
Une approche simplifiée consiste à utilisermysqld_safe
Ou exécutez directement depuis la ligne de commandemysqld
, mais cela ne convient pas aux environnements de production.
Chaque instance dispose d'un mot de passe root par défaut après l'initialisation (MySQL 5.7.6 et versions ultérieures). Vous devez définir des mots de passe indépendants et des autorisations utilisateur pour chaque instance.
--socket
et--port
option).ALTER USER
instruction pour définir le mot de passe root.Assurez-vous d'avoir mis en place des stratégies de surveillance et de sauvegarde pour maintenir vos multiples instances MySQL.