Configuration de la base de données
FeedbackPulse SaaS utilise MySQL ou MariaDB comme base de données principale.
✅ Bases de données prises en charge
| Base de données | Version | Statut |
|---|---|---|
| MySQL | 8.0+ | ✅ Entièrement pris en charge (recommandé) |
| MariaDB | 10.6+ | ✅ Entièrement pris en charge |
| PostgreSQL | 15+ | ⚠️ Expérimental (les migrations peuvent nécessiter des ajustements) |
| SQLite | 3.35+ | ⚠️ Développement uniquement (pas pour la production) |
🔧 Création de la base de données
Avant d'exécuter le programme d'installation :
-- Se connecter à MySQL
mysql -u root -p
-- Créer la base de données avec le bon jeu de caractères
CREATE DATABASE feedbackpulse
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- Créer un utilisateur dédié (recommandé pour la sécurité)
CREATE USER 'feedbackpulse'@'localhost'
IDENTIFIED BY 'your_strong_password_here';
-- Accorder les permissions
GRANT ALL PRIVILEGES ON feedbackpulse.*
TO 'feedbackpulse'@'localhost';
FLUSH PRIVILEGES;
EXIT;
⚠️ Pourquoi
utf8mb4? Il prend en charge le jeu de caractères Unicode complet incluant les emojis. Les retours clients contiennent souvent des emojis, c'est donc important !
⚙️ Configuration .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=feedbackpulse
DB_USERNAME=feedbackpulse
DB_PASSWORD=your_strong_password_here
Problèmes courants
| Problème | Solution |
|---|---|
SQLSTATE[HY000] [2002] Connection refused | Utilisez 127.0.0.1 au lieu de localhost |
SQLSTATE[HY000] [1045] Access denied | Vérifiez le nom d'utilisateur/mot de passe, assurez-vous que l'utilisateur a les privileges |
SQLSTATE[42S01] Table already exists | La base de données n'était pas vide. Supprimez et recréez, ou utilisez le flag --force |
Les caractères emoji s'affichent comme ???? | Le jeu de caractères de la base de données doit être utf8mb4, pas utf8 |
🔍 Optimisation des performances MySQL
Pour les serveurs de production avec de nombreux locataires, optimisez MySQL :
# /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
# Pool de tampons InnoDB (définir à 50-70% de la RAM disponible)
innodb_buffer_pool_size = 1G
# Taille du fichier de journal
innodb_log_file_size = 256M
# Connexions max (augmenter pour les plateformes à fort trafic)
max_connections = 200
# Cache de requêtes (désactiver dans MySQL 8.0+, déprécié)
query_cache_type = 0
# Journal des requêtes lentes (pour le débogage des problèmes de performance)
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
Redémarrez MySQL :
sudo systemctl restart mysql
💾 Sauvegarde et restauration
Via le panneau d'administration
FeedbackPulse dispose d'une fonctionnalité de sauvegarde intégrée :
- Allez à
Admin → Sauvegardes - Cliquez sur Créer une sauvegarde
- Téléchargez le fichier
.sql.gz
Sauvegarde manuelle
mysqldump -u feedbackpulse -p feedbackpulse | gzip > backup_$(date +%Y%m%d_%H%M%S).sql.gz
Restauration
gunzip < backup_20240101_120000.sql.gz | mysql -u feedbackpulse -p feedbackpulse