メインコンテンツまでスキップ

データベース設定

FeedbackPulse SaaSは、主要データベースとしてMySQLまたはMariaDBを使用します。


✅ 対応データベース

データベースバージョンステータス
MySQL8.0+✅ 完全サポート(推奨)
MariaDB10.6+✅ 完全サポート
PostgreSQL15+⚠️ 実験的(マイグレーションの調整が必要な場合あり)
SQLite3.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 refusedlocalhost の代わりに 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には組み込みバックアップ機能があります:

  1. 管理者 → バックアップ に移動
  2. バックアップを作成をクリック
  3. .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

⏭️ 次のステップ