Outils pour utilisateurs

Outils du site


bdd_et_replication

Ceci est une ancienne révision du document !


# Documentation : Installation GLPI avec BDD externe et réplication MariaDB sur Debian 12

## 1️⃣ Pré-requis

* Deux serveurs Debian 12 :

  • Master BDD : `192.168.100.9`
  • Replica BDD : `192.168.100.10`

* Serveur GLPI : `192.168.100.7` * Accès root sudo sur tous les serveurs * Firewall : port 3306 ouvert entre master et replica, et du GLPI vers le master

## 2️⃣ Installation de MariaDB sur le serveur externe (Master)

```bash sudo apt update && sudo apt upgrade -y sudo apt install mariadb-server -y sudo systemctl enable –now mariadb sudo mysql_secure_installation ```

* Supprimer les utilisateurs anonymes * Interdire root distant * Supprimer DB test * Mettre un mot de passe root fort

## 3️⃣ Créer la base GLPI et l’utilisateur

```sql CREATE DATABASE glpidb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'glpiuser'@'192.168.100.7' IDENTIFIED BY 'Btssio2017'; GRANT ALL PRIVILEGES ON glpidb.* TO 'glpiuser'@'192.168.100.7'; FLUSH PRIVILEGES; ```

## 4️⃣ Configurer MariaDB pour accès externe

Éditer `/etc/mysql/mariadb.conf.d/50-server.cnf` sur le master :

```ini [mysqld] server-id = 1 log_bin = /var/log/mysql/mariadb-bin binlog_format = ROW bind-address = 192.168.100.9 expire_logs_days = 7 max_binlog_size = 100M ```

* Créer le dossier de logs si nécessaire :

```bash sudo mkdir -p /var/log/mysql sudo chown -R mysql:mysql /var/log/mysql sudo chmod 750 /var/log/mysql sudo systemctl restart mariadb ```

## 5️⃣ Lier GLPI à la base externe

1. Supprimer le fichier de config local de GLPI :

```bash sudo rm /var/www/html/glpi/config/config_db.php ```

2. Vérifier droits :

```bash sudo chown -R www-data:www-data /var/www/html/glpi/config sudo chmod -R 755 /var/www/html/glpi/config ```

3. Dans le navigateur, relancer GLPI → interface d’installation

* Serveur SQL : `192.168.100.10` * Utilisateur SQL : `glpiuser` * Mot de passe : `Btssio2017` * Base : `glpidb`

4. GLPI va créer les tables nécessaires.

## 6️⃣ Configuration de la réplication Master → Replica

### 6.1 Sur le Master

1. Créer l’utilisateur de réplication :

```sql CREATE USER 'repl'@'192.168.100.11' IDENTIFIED BY 'Btssio2017'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.100.11'; FLUSH PRIVILEGES; ```

2. Vérifier l’état actuel des binlogs :

```sql SHOW MASTER STATUS; ```

Note `File` et `Position` pour config du replica.

### 6.2 Sur le Replica

1. Éditer `/etc/mysql/mariadb.conf.d/50-server.cnf` :

```ini [mysqld] server-id = 2 relay-log = /var/log/mysql/mariadb-relay read_only = 1 ```

2. Créer le dossier logs si nécessaire :

```bash sudo mkdir -p /var/log/mysql sudo chown -R mysql:mysql /var/log/mysql sudo chmod 750 /var/log/mysql sudo systemctl restart mariadb ```

3. Importer la base (depuis un dump du master) :

```bash mysql -u root -p < /tmp/glpidb.sql ```

4. Configurer la réplication :

```sql STOP SLAVE; CHANGE MASTER TO

MASTER_HOST='192.168.100.10',
MASTER_USER='repl',
MASTER_PASSWORD='ReplP@ssw0rd!',
MASTER_LOG_FILE='mariadb-in.000001',  -- depuis SHOW MASTER STATUS
MASTER_LOG_POS=795;                    -- depuis SHOW MASTER STATUS

START SLAVE; ```

5. Vérifier :

```sql SHOW SLAVE STATUS\G ```

* `Slave_IO_Running: YES` * `Slave_SQL_Running: YES`

## 7️⃣ Vérifications et tests

1. Créer une table test sur le master et vérifier qu’elle apparaît sur le replica :

```sql CREATE TABLE test_replication (id INT PRIMARY KEY, message VARCHAR(50)); INSERT INTO test_replication VALUES (1, 'replication OK'); SELECT * FROM test_replication; – sur le replica ```

2. Surveiller le retard :

```sql SHOW SLAVE STATUS\G ```

* `Seconds_Behind_Master` → doit être 0 ou proche

## 8️⃣ Bonnes pratiques

* Faire des backups réguliers (même avec réplication) * Ne pas écrire directement sur le replica (`read_only = 1`) * Vérifier la réplication après chaque purge de binlogs ou upgrade * Firewall : ouvrir uniquement port 3306 entre GLPI / master / replica

bdd_et_replication.1757926146.txt.gz · Dernière modification : (modification externe)