跳至主要内容

import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';

[PGSQL] Basic setup

PostgreSQL Server

初始安裝

init.sh
export PGSQL_HOME="$KYWK_HOME/workspace/docker/postgres"

docker run --name postgres -d \
-v $PGSQL_HOME/data:/var/lib/postgresql/data \
-p 5432:5432 \
-e POSTGRES_DB=sandbox \
-e POSTGRES_USER=admin \
-e POSTGRES_PASSWORD='pw123456' \
postgres:15

使用 docker run 建立 container, 若本機沒有 image, 會自動從 Docker Hub 下載.

  • —name: container 名字以方便識別 postgres (若省略, Docker 會自動以亂數建立)
  • -d: detach 建立 container 後就脫離目前 process
  • -v: volume PostgresSQL 的資料放在 container 內的 /var/lib/postgresql/data 目錄. 這個設定讓 docker mapping host ~/workspace/docker/postgres 到 container 內的 /var/lib/postgresql/data. 如此 container 刪除後, 資料仍然會留在 host.
  • -p: port mapping host 與 container post 的對應, 格式為 host port : container port. PostgreSQL 預設 port 為 5432
  • -e: environment 設定 PostgreSQL 所需要的環境變數
    • POSTGRES_DB: database 名稱
    • POSTGRES_USER: 帳號
    • POSTGRES_PASSWORD: 密碼
  • postgress:15: image 名稱

啟用 / 停止服務

docker start postgres 
docker stop postgres
Docker-compose.yml
version: "3"

services:
postgres:
image: postgres:latest
container_name: MyPostgres
volumes:
- ${HOST_DIR}:/var/lib/postgresql/data
expose:
- 5432
ports:
- ${POSTGRES_PORT}:5432
environment:
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}

安裝

brew install postgresql

啟用 / 停止服務

brew service start postgresql
brew service stop postgresql

PostgreSQL Client

CLI client

Install libpq & symlink psql (and other libpq tools) into /usr/local/bin

brew install libpq
brew link --force libpq

psql connection

In order to connect to your PostgreSQL server, we’ll need the following connection params:

  • Hostname
  • Port
  • Username
  • Password
  • Database name

Option 1, the Unix-like cli arguments

psql -h [HOSTNAME] -p [PORT] -U [USERNAME] -W -d [DATABASENAME]

or, make a connection URI as following:

psql postgres://[USERNAME]:[PASSWORD]@[HOSTNAME]:[PORT]/[DATABASENAME]?sslmode=require

DB User

See Also