Pancake Stack › Pancake Stack マニュアル
データベース
サイトごとの MySQL データベース、Adminer と phpMyAdmin、読み込みと書き出し、既存のデータベースへの接続、PostgreSQL について説明します。

7.1Pancake のデータベース
各サイトには専用の MySQL 8.4 データベースと、そのデータベースだけを開ける専用のユーザがあります。どちらもサイト名にちなんだ名前です(my-blog は my_blog になります)。パスワードはランダムでキーチェーンに保存されます。サイトは DB_HOST、DB_PORT、DB_NAME、DB_USER、DB_PASSWORD からすべてを読むので、パスワードをサイトのファイルに書く必要はありません。
データベースペインには、各データベースのサイズ、テーブル数、使っているサイトが一覧表示されます。表示するには MySQL が動いている必要があるので、「すべて開始」をクリックしてください。
- 新規データベース(+ボタン)で、追加のデータベースを作ります。名前には英小文字、数字、アンダースコアを使います。
- ゴミ箱のボタンでデータベースを削除します。Pancake は先にコピーを書き出してから削除を提案します。
7.2Adminer と phpMyAdmin
Adminer は、ブラウザの adminer.localhost でデータベースを開きます。テーブルの閲覧、クエリの実行、行の編集ができます。サーバ、ユーザ、データベースは Pancake が入力するので、パスワードを入力してください。サイト専用のユーザか、root と詳細 ▸ root のパスワードをコピーで得たパスワードを使います。外部アクセスがオンでも、Adminer が公開されることはありません。
phpMyAdmin を使いたい場合は、phpMyAdmin をクリックし、phpmyadmin.net から「all-languages」の ZIP をダウンロードして選びます。Pancake はそれを、この Mac の中だけで動く phpmyadmin.localhost のサイトとして配信します(phpMyAdmin は Pancake には含まれていません)。
7.3書き出しと読み込み
- 書き出し…は、データベースを日時入りの名前の
.sqlファイルとして保存します。 - 読み込み…は、
.sqlファイルをデータベースに読み込みます。ファイルの内容に応じて、既存のデータに追加するか置き換えます。
大きな変更の前には書き出しておくか、サイトのカードで保存ポイントを作ってください。保存ポイントはファイルと一緒にデータベースもコピーします。
7.4ほかのアプリからの接続
「詳細」をオンにすると、他のツールから接続に、TablePlus、Sequel Ace、DBeaver などのデータベースアプリに入力する内容が表示されます。ホストは 127.0.0.1、ポートは MySQL が使っているポート(通常は 3306)、ユーザは root です。root のパスワードをコピーでパスワードをコピーします。Pancake の MySQL は、この Mac からの接続しか受け付けません。
ほかの MySQL(MAMP、Homebrew、Docker のもの)がすでにポート 3306 を使っている場合、Pancake の MySQL は 3307 などの次の空きポートを使い、ペインにそのポートを表示します。
7.5外部のデータベース
サイトでは、Pancake のデータベースの代わりに既存のデータベースも使えます。MAMP の MySQL、NAS やほかのコンピュータ上のデータベース、Amazon RDS、Supabase、Neon などのクラウドのデータベースです。
- 既存のデータベースに接続…をクリックします。
- MySQL / MariaDB か PostgreSQL TallStack を選びます。プリセットで一般的な構成を入力できます:MAMP(ポート 8889)、Homebrew や Docker、TLS で接続するクラウドのデータベース、Postgres.app、Supabase、Neon、RDS。
- 名前を付け、サーバ、ポート、データベース、ユーザ、パスワードを入力します。
- セキュリティを選びます:暗号化(TLS)、暗号化し、サーバの証明書も確認(CA ファイルを選びます)、暗号化なし。暗号化なしは、この Mac とローカルネットワークでのみ使えます。
- テストをクリックしてから、保存をクリックします。
- サイトのカード(詳細)で、データベースを新しい接続に設定します。
すると、サイトにはそのデータベースの情報が DB_HOST、DB_PORT などとして渡され、さらに DATABASE_URL、DB_CONNECTION、DB_SSL_MODE も渡されます。
外部の接続にはそれぞれ、テスト、書き出し…、Pancake にコピー(安全に開発できるよう <name>_copy という名前のローカルのコピーを作ります)、編集…、そして接続を忘れるだけでデータベースには触れないゴミ箱のボタンがあります。
Pancake はソケットファイルではなくネットワークで接続します。App Store のアプリはほかのアプリのソケットを使えないためです。ホストには 127.0.0.1 と、そのサーバのポートを指定してください。
SSH 経由
TallStack サーバ自身からのデータベース接続しか受け付けないサーバは少なくありません。SSH 経由で接続をオンにし、SSH サーバ、ポート、ユーザ、パスワードか鍵ファイルを入力します。この場合、データベースのサーバには SSH サーバから見たアドレス(通常は 127.0.0.1)を指定します。Pancake はトンネルを開いたままにし、切れたら開き直します。
テストに失敗したら
Pancake はよくあるエラーをわかりやすい言葉で表示します。ユーザ名かパスワードが違う。その名前のデータベースがない。サーバがこの Mac からの接続を受け付けていない(サーバ側で許可するか、SSH 経由で接続してください)。サーバ名が見つからない。そのポートで何も応答しない(サーバは動いていますか?ファイアウォールはこの Mac を許可していますか?)。暗号化した接続に失敗した(サーバがネットワーク上にあって TLS がない場合は「暗号化なし」を、独自の認証局を使っている場合は CA ファイルを選んでください)。
7.6PostgreSQL
FullStack Pancake には PostgreSQL 17 が含まれています。サービスペインでオンにします。すると各サイトに専用の PostgreSQL データベースとロール(site_<name>)も用意され、サイトはそれを PGHOST、PGPORT、PGDATABASE、PGUSER、PGPASSWORD、POSTGRES_URL から読みます。PHP の pgsql と pdo_pgsql 拡張機能も含まれています。
PostgreSQL のデータベースは、データベースペインの専用のセクションに、同じ Adminer、書き出し、読み込み、新規データベースのボタンとともに表示されます。ほかのアプリからは、ユーザ postgres とpostgres のパスワードをコピー(詳細)を使います。