Partage de technologie

Comment ouvrir plusieurs bases de données MySQL sous Linux et définir les mots de passe et les ports individuellement

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 :

1. Préparation

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.

2. Créez un nouveau répertoire de données

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/mysql1et/data/mysql2sont les répertoires de données de deux instances différentes.

3. Copiez et modifiez le fichier de configuration

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.

  • Copiez le modèle de profil (s'il n'existe pas, vous pouvez le créer à partir de la configuration par défaut) :
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 sectiondatadirpour les répertoires de données nouvellement créés (par ex./data/mysql1ou/data/mysql2)。
    • Définir différentport(Par exemple, la première instance utilise 3306, la deuxième instance utilise 3307).
    • Vous devrez peut-être également définirsocketchemins, en veillant à ce qu’ils soient uniques.
    • (facultatif) paramètresuseretlog_erroret d'autres options pour garantir que l'instance s'exécute de manière indépendante.

4. Initialisez le répertoire de données (s'il n'est pas déjà initialisé)

Pour les nouvelles instances MySQL, vous devez initialiser le répertoire de données.Cela implique généralement de courirmysqld --initializeoumysql_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

5. Démarrez l'instance MySQL

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_safeOu exécutez directement depuis la ligne de commandemysqld, mais cela ne convient pas aux environnements de production.

6. Définir les mots de passe et les autorisations

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.

  • Connectez-vous à chaque instance (en utilisant--socketet--portoption).
  • utiliserALTER USERinstruction pour définir le mot de passe root.
  • Créez un nouvel utilisateur et autorisez-le.

7. Entretien et surveillance

Assurez-vous d'avoir mis en place des stratégies de surveillance et de sauvegarde pour maintenir vos multiples instances MySQL.

Avis

  • Les étapes ci-dessus constituent un aperçu général et peuvent devoir être adaptées à votre environnement spécifique.
  • L'exécution de plusieurs instances MySQL peut augmenter la complexité du système et la consommation de ressources.
  • Assurez-vous que le pare-feu de votre système et la configuration réseau autorisent l'accès à chaque instance à partir du port approprié.