データベース設定
FeedbackPulse SaaSは、主要データベースとしてMySQLまたはMariaDBを使用します。
✅ 対応データベース
| データベース | バージョン | ステータス |
|---|---|---|
| MySQL | 8.0+ | ✅ 完全サポート(推奨) |
| MariaDB | 10.6+ | ✅ 完全サポート |
| PostgreSQL | 15+ | ⚠️ 実験的(マイグレーションの調整が必要な場合あり) |
| SQLite | 3.35+ | ⚠️ 開発専用(本番環境不可) |
🔧 データベースの作成
インストーラーを実行する前に:
-- MySQLに接続
mysql -u root -p
-- 適切な文字セットでデータベースを作成
CREATE DATABASE feedbackpulse
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- 専用ユーザーを作成(セキュリティのために推奨)
CREATE USER 'feedbackpulse'@'localhost'
IDENTIFIED BY 'your_strong_password_here';
-- 権限を付与
GRANT ALL PRIVILEGES ON feedbackpulse.*
TO 'feedbackpulse'@'localhost';
FLUSH PRIVILEGES;
EXIT;
⚠️ なぜ
utf8mb4か? 絵文字を含む完全なUnicode文字セットをサポートします。顧客フィードバックには絵文字が含まれることが多いため、これは重要です!
⚙️ .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
よくある問題
| 問題 | 解決策 |
|---|---|
SQLSTATE[HY000] [2002] Connection refused | localhost の代わりに 127.0.0.1 を使用 |
SQLSTATE[HY000] [1045] Access denied | ユーザー名/パスワードを確認し、ユーザーに権限があることを確認 |
SQLSTATE[42S01] Table already exists | データベースが空ではありませんでした。削除して再作成するか --force フラグを使用 |
絵文字が ???? と表示される | データベースの文字セットは utf8 でなく utf8mb4 である必要があります |
🔍 MySQLパフォーマンスチューニング
多数のテナントがいる本番サーバーでは、MySQLを最適化します:
# /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
# InnoDBバッファプール(使用可能なRAMの50-70%に設定)
innodb_buffer_pool_size = 1G
# ログファイルサイズ
innodb_log_file_size = 256M
# 最大接続数(高トラフィックプラットフォームでは増加)
max_connections = 200
# クエリキャッシュ(MySQL 8.0+では無効化 - 廃止済み)
query_cache_type = 0
# スロークエリログ(パフォーマンス問題のデバッグ用)
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
MySQLを再起動:
sudo systemctl restart mysql
💾 バックアップとリストア
管理パネルを使用
FeedbackPulseには組み込みバックアップ機能があります:
管理者 → バックアップに移動- バックアップを作成をクリック
.sql.gzファイルをダウンロード
手動バックアップ
mysqldump -u feedbackpulse -p feedbackpulse | gzip > backup_$(date +%Y%m%d_%H%M%S).sql.gz
リストア
gunzip < backup_20240101_120000.sql.gz | mysql -u feedbackpulse -p feedbackpulse