piapia123
ja

データベース接続文字列の解析と生成

Web

処理はすべてブラウザ内で完結します。データは送信されません

入力
ファイルをここにドロップすると読み込めます
出力

接続文字列をホスト、ポート、データベース、ユーザー名、パスワード、パラメータに分解し、逆にそれらから組み立てます。URL 形式(`postgres://user:pass@host:5432/db?sslmode=require`)と key=value 形式(`host=… port=… user=…`)の両方に対応します。 パスワードの `@`、`:`、`/` はパーセントエンコードが必要で、しかも 1 回だけです。 解析時はデコード、生成時はエンコード。すでにエンコード済みに見える入力(`%XX` を含む)には警告を出し、二重エンコード(`p%40ss` → `p%2540ss`)を避けます。 すべてブラウザ内で完結し、接続文字列とパスワードは端末の外に出ず、通信も発生しません。

機能

  • 2 つのモード:接続文字列の解析、フィールドからの生成
  • 4 つの対象:PostgreSQL、MySQL、MongoDB、Redis(既定ポートもそれぞれ正しい値)
  • URL 形式と libpq 風の key=value 形式に対応
  • パスワードの特殊文字を自動でパーセントエンコード、解析時は自動デコード
  • エンコード済みに見えるパスワードに警告(`%40` が `%2540` になるのを防ぐ)
  • sslmode / ssl-mode / tls などのパラメータを認識して一覧表示
  • Redis の TLS は `rediss://` スキームに自動で切り替え
  • 行ごとのコピーも、全体のコピーも可能

使い方

  1. 「解析」か「生成」を選びます
  2. 解析:接続文字列を貼り付けるとフィールドごとの結果がすぐ出ます
  3. 生成:対象データベースを選び、ホスト・ポート・データベース・パスワードを入力
  4. 必要に応じて SSL の要求を切り替えると、接続文字列が即時に更新されます

よくある質問

パスワードは合っているはずなのに接続できません。
多くは二重エンコードです。生成時に `@` を `%40` に変換しますが、元の文字列にすでに `%40` が含まれていると(他のツールからコピーした場合など)、もう一度エンコードされて `%2540` になり、サーバーが受け取る値が設定したものと変わります。入力に `%XX` があると警告が出ます —— その場合はデコード後の平文を入力し直してください。
解析結果のパスワードが平文なのはなぜですか?
接続文字列にはエンコード形が入っていますが、確認したいのはデータベースに設定した値だからです。解析時に 1 回パーセントデコードするため、`p%40ss` は `p@ss` と表示されます。文字列自身のエンコードを戻すだけで、データは変更しません。
key=value 形式にはスキームがありません。種類はどう判断しますか?
「対象データベース」のドロップダウンで指定します。URL 形式はスキーム(`postgres://`、`redis://`…)から自動判定できますが、key=value 形式は libpq / JDBC の conninfo でデータベース種別を含まないため、選択した値が使われます。
データは送信されますか?
いいえ。解析も生成もブラウザ内で完結し、接続文字列(パスワードを含む)は端末の外に出ず、通信も発生しません。

関連ツール