Configuração do Banco de Dados
O FeedbackPulse SaaS usa MySQL ou MariaDB como banco de dados principal.
✅ Bancos de Dados Suportados
| Banco de Dados | Versão | Status |
|---|---|---|
| MySQL | 8.0+ | ✅ Totalmente suportado (recomendado) |
| MariaDB | 10.6+ | ✅ Totalmente suportado |
| PostgreSQL | 15+ | ⚠️ Experimental (as migrations podem precisar de ajustes) |
| SQLite | 3.35+ | ⚠️ Apenas para desenvolvimento (não para produção) |
🔧 Criando o Banco de Dados
Antes de executar o instalador:
-- Conectar ao MySQL
mysql -u root -p
-- Criar banco de dados com conjunto de caracteres adequado
CREATE DATABASE feedbackpulse
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- Criar um usuário dedicado (recomendado por segurança)
CREATE USER 'feedbackpulse'@'localhost'
IDENTIFIED BY 'your_strong_password_here';
-- Conceder permissões
GRANT ALL PRIVILEGES ON feedbackpulse.*
TO 'feedbackpulse'@'localhost';
FLUSH PRIVILEGES;
EXIT;
⚠️ Por que
utf8mb4? Ele suporta o conjunto de caracteres Unicode completo, incluindo emojis. O feedback dos clientes frequentemente contém emojis, por isso isso é importante!
⚙️ Configuração do .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
Problemas Comuns
| Problema | Solução |
|---|---|
SQLSTATE[HY000] [2002] Connection refused | Use 127.0.0.1 em vez de localhost |
SQLSTATE[HY000] [1045] Access denied | Verifique usuário/senha e garanta que o usuário tenha privilégios |
SQLSTATE[42S01] Table already exists | O banco de dados não estava vazio. Exclua e recrie, ou use a flag --force |
Caracteres de emoji exibidos como ???? | O charset do banco de dados deve ser utf8mb4, não utf8 |
🔍 Ajuste de Desempenho do MySQL
Para servidores de produção com muitos tenants, otimize o MySQL:
# /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
# Buffer pool do InnoDB (defina como 50-70% da RAM disponível)
innodb_buffer_pool_size = 1G
# Tamanho do arquivo de log
innodb_log_file_size = 256M
# Conexões máximas (aumente para plataformas de alto tráfego)
max_connections = 200
# Cache de consulta (desabilite no MySQL 8.0+, está obsoleto)
query_cache_type = 0
# Log de consultas lentas (para depurar problemas de desempenho)
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
Reinicie o MySQL:
sudo systemctl restart mysql
💾 Backup e Restauração
Usando o Painel de Admin
O FeedbackPulse tem um recurso de backup integrado:
- Vá para
Admin → Backups - Clique em Criar Backup
- Baixe o arquivo
.sql.gz
Backup Manual
mysqldump -u feedbackpulse -p feedbackpulse | gzip > backup_$(date +%Y%m%d_%H%M%S).sql.gz
Restauração
gunzip < backup_20240101_120000.sql.gz | mysql -u feedbackpulse -p feedbackpulse