ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Scratch 作品の公開方法 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- APIキー取得方法 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?