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 ```
Paramètres recommandés :
- Supprimer les utilisateurs anonymes - Interdire root distant - Supprimer la base test - Mettre un mot de passe root fort
—
## 3️⃣ Création de la base GLPI et de 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 un 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 des 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 configuration local de GLPI :
```bash sudo rm /var/www/html/glpi/config/config_db.php ```
2. Vérifier les 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.9` - Utilisateur SQL : `glpiuser` - Mot de passe : `Btssio2017` - Base : `glpidb`
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.10' IDENTIFIED BY 'Btssio2017'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.100.10'; FLUSH PRIVILEGES; ```
2. Vérifier l’état actuel des binlogs :
```sql SHOW MASTER STATUS; ```
Notez `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 des 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.9', MASTER_USER='repl', MASTER_PASSWORD='Btssio2017', MASTER_LOG_FILE='mariadb-bin.000001', -- depuis SHOW MASTER STATUS MASTER_LOG_POS=123; -- 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 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 le port 3306 entre GLPI / Master / Replica
