ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
エラー内容
Redmine をセットアップして rake db:migrate 等を実行すると以下のエラーが出ます:
rake aborted!
PG::ConnectionBad: FATAL: Ident authentication failed for user "redmine"
/var/lib/gems/2.7.0/gems/pg-1.3.5/lib/pg.rb:nn:in `initialize'
/var/lib/gems/2.7.0/gems/pg-1.3.5/lib/pg.rb:nn:in `new'
/var/lib/gems/2.7.0/gems/pg-1.3.5/lib/pg.rb:nn:in `connect'
...
/var/lib/gems/2.7.0/gems/activerecord-6.1.7/lib/active_record/connection_adapters/postgresql_adapter.rb:nn:in `new_client'
...
Tasks: TOP => db:migrate => db:load_config
原因: PostgreSQL の ident 認証
PostgreSQL は pg_hba.conf でクライアント認証方式を制御します。ident 認証は OS のユーザ名と PG のユーザ名が一致するかをチェックする方式で、Web アプリのような OS ユーザが www-data や nginx である環境では「redmine」OS ユーザがいないため失敗します。
pg_hba.conf の場所
# Ubuntu / Debian
/etc/postgresql/14/main/pg_hba.conf
/etc/postgresql/15/main/pg_hba.conf
# (バージョン 14, 15 の部分はインストール版による)
# CentOS / RHEL
/var/lib/pgsql/data/pg_hba.conf
/var/lib/pgsql/14/data/pg_hba.conf
# macOS (Homebrew)
/usr/local/var/postgres/pg_hba.conf
# Docker (postgres 公式イメージ)
/var/lib/postgresql/data/pg_hba.conf
# 確認コマンド
sudo -u postgres psql -c "SHOW hba_file;"
修正手順
pg_hba.confを root 権限で編集localまたはhost行の認証方式をidentからmd5に変更- PostgreSQL を reload
- アプリ再起動
sudo vi /etc/postgresql/14/main/pg_hba.conf
変更前
# TYPE DATABASE USER ADDRESS METHOD
# Database administrative login by Unix domain socket
local all postgres peer
# "local" is for Unix domain socket connections only
local all all ident ← ★
# IPv4 local connections:
host all all 127.0.0.1/32 ident ← ★
# IPv6 local connections:
host all all ::1/128 ident ← ★
変更後
# TYPE DATABASE USER ADDRESS METHOD
local all postgres peer
local all all md5 ← 変更
host all all 127.0.0.1/32 md5 ← 変更
host all all ::1/128 md5 ← 変更
認証方式の種類
| 方式 | 意味 | 用途 |
|---|---|---|
| trust | 無条件で許可(パスワードなし) | ★ ローカル開発のみ。本番禁止 |
| peer | OS ユーザ名 = PG ユーザ名 で許可 | postgres コマンド経由の管理用 |
| ident | peer に類似(remote ident protocol 経由) | 古い設定。現在はあまり使わない |
| md5 | MD5 ハッシュパスワード認証 | 長年の標準 |
| scram-sha-256 | SCRAM SHA-256 認証(推奨) | PG 10 以降の現代標準 |
| password | 平文パスワード | NG(盗聴される) |
| cert | SSL クライアント証明書 | 厳密な認証が必要な環境 |
| ldap / kerberos | 外部認証連携 | 企業内システム |
再起動 / reload
# 設定再読み込み(接続中セッションは維持される)
sudo systemctl reload postgresql
# 完全再起動(接続が一旦切断)
sudo systemctl restart postgresql
# pg_ctl 経由(PG ユーザで)
sudo -u postgres pg_ctl reload -D /var/lib/postgresql/14/main
# Docker の場合
docker exec postgres-container pg_ctl reload
PG ユーザにパスワードを設定
md5 認証にしただけだとパスワードが未設定の可能性。redmine ユーザにパスワードを設定:
sudo -u postgres psql
ALTER USER redmine WITH PASSWORD 'YourStrongPassword';
# または新規作成
CREATE USER redmine WITH PASSWORD 'YourStrongPassword';
CREATE DATABASE redmine OWNER redmine ENCODING 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE redmine TO redmine;
\q
Redmine 側の設定 (database.yml)
# config/database.yml
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "YourStrongPassword"
encoding: utf8
# 環境変数経由が安全
production:
adapter: postgresql
database: <%= ENV['DB_NAME'] %>
host: <%= ENV['DB_HOST'] %>
username: <%= ENV['DB_USER'] %>
password: <%= ENV['DB_PASSWORD'] %>
encoding: utf8
動作確認
# コマンドラインで接続テスト
psql -U redmine -d redmine -h localhost
# パスワードプロンプト → 接続できれば成功
# Redmine の rake コマンド再実行
cd /var/www/redmine
bundle exec rake db:migrate RAILS_ENV=production
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
セキュリティ Tips
- 本番では
scram-sha-256を使う(PG 10+) - パスワードは強固に(最低 16 文字、英数記号混在)
- local 接続のみ許可:
listen_addresses = 'localhost'で外部接続不可に - 専用 DB ユーザ: Redmine 用のユーザは Redmine DB だけに権限を持たせる
- ファイアウォールで 5432 ポートを外部から遮断
関連エラー
- "could not connect to server" — PG サーバ自体が起動していない / listen_addresses で許可されていない
- "password authentication failed" — md5 認証になっているがパスワードが違う
- "FATAL: database does not exist" — CREATE DATABASE 忘れ
- "FATAL: role does not exist" — CREATE USER 忘れ
- "too many connections" —
max_connections設定不足
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- rake aborted! PG::ConnectionBad: FATAL: Ident authentication failed for user "redmine"
- ctl.sh : httpd could not be started
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?