データベース接続文字列の解析と生成
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://` スキームに自動で切り替え
- 行ごとのコピーも、全体のコピーも可能
使い方
- 「解析」か「生成」を選びます
- 解析:接続文字列を貼り付けるとフィールドごとの結果がすぐ出ます
- 生成:対象データベースを選び、ホスト・ポート・データベース・パスワードを入力
- 必要に応じて SSL の要求を切り替えると、接続文字列が即時に更新されます
よくある質問
- パスワードは合っているはずなのに接続できません。
- 多くは二重エンコードです。生成時に `@` を `%40` に変換しますが、元の文字列にすでに `%40` が含まれていると(他のツールからコピーした場合など)、もう一度エンコードされて `%2540` になり、サーバーが受け取る値が設定したものと変わります。入力に `%XX` があると警告が出ます —— その場合はデコード後の平文を入力し直してください。
- 解析結果のパスワードが平文なのはなぜですか?
- 接続文字列にはエンコード形が入っていますが、確認したいのはデータベースに設定した値だからです。解析時に 1 回パーセントデコードするため、`p%40ss` は `p@ss` と表示されます。文字列自身のエンコードを戻すだけで、データは変更しません。
- key=value 形式にはスキームがありません。種類はどう判断しますか?
- 「対象データベース」のドロップダウンで指定します。URL 形式はスキーム(`postgres://`、`redis://`…)から自動判定できますが、key=value 形式は libpq / JDBC の conninfo でデータベース種別を含まないため、選択した値が使われます。
- データは送信されますか?
- いいえ。解析も生成もブラウザ内で完結し、接続文字列(パスワードを含む)は端末の外に出ず、通信も発生しません。
関連ツール
Compose ↔ docker run
Webcompose の services 部分と docker run コマンドを双方向に変換します。対応物のないキーは理由付きで列挙し、黙って捨てません。
設定ファイル検証
Webpackage.json、.env、robots.txt、sitemap.xml、HTTP レスポンスヘッダーを検証します。結論はエラー・警告・提案の 3 段階で、それぞれ理由を添えます。
オンライン・データベース設計
WebDDL を貼ると、テーブル関連図・対象方言(MySQL / PostgreSQL / SQLite)の DDL・構造チェック(外部キー、索引、予約語)が出ます。
URL 解析
WebURL を解析し、スキーム・ホスト・ポート・パス・クエリパラメータ・アンカーに分解します。パラメータは元の値とデコード値を並記。すべてブラウザ内で処理します。
UA 解析
WebUser-Agent を解析し、ブラウザ・バージョン・OS・デバイス種別・エンジンを判定します。判定はパターン照合による概算です。すべてブラウザ内で処理します。
HTTP ステータスコード
WebHTTP ステータスコードの検索。番号から意味を、キーワードから番号を引けます。1xx〜5xx の分類・利用場面・確認のポイント付き。すべてブラウザ内で処理します。