Docker 內 PostgreSQL 資料庫的初始化方式

PostgreSQL 要跑在 Docker 裡面,於是就得把資料的部份 Mount 出來,但是資料 Mount 出來,PostgreSQL 就會無法啟動,於是需要做初始化資料庫的動作~

Docker 內 PostgreSQL 資料庫的初始化方式

Debian Linux 的 PostgreSQL 程式都會安裝在 /usr/lib/postgresql/ 裡面,如:/usr/lib/postgresql/13/bin/

要初始化資料庫,可以使用 initdb 來解決~ (注意:需要使用 postgres 的帳號執行)

  1. docker exec -it -u root postgresql-docker bash
  2. su - postgres # 切換成 postgres account
  3. /usr/lib/postgresql/13/bin/initdb -D /var/lib/postgresql/13/main # initial db, -D 是要寫去哪個資料夾
    • 註:/var/lib/postgresql/13/main 是 /etc/postgresql/13/main/postgresql.conf 的預設設定:
    • data_directory = '/var/lib/postgresql/13/main'
  4. /etc/init.d/postgresql start

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料