PostgreSQL14 ubuntu22 initdbコマンド 初期化する

PostgreSQL14 ubuntu22 initdbコマンド 初期化する

PostgreSQL14 ubuntu22 initdbコマンド 初期化する

PostgreSQL14 ubuntu22 initdbコマンド 初期化する

意味:

initdb(イニットディービー)コマンドとは、PostgreSQLで、データベースを初期化するコマンドです。今までのデータベースを消去して、新しくデータベースを構築する場合に使います。

動作環境:


Database: PostgreSQL 14
OS: Linux Ubuntu 22

コマンドまとめ:


rm -rf /var/lib/postgresql/14/main #データのあるディレクトリを消去する

su - postgres #ユーザーをpostgresに切替
psql --version #バージョン確認

psql #psqlに入る
\q #psqlから出る
postgres=# SHOW data_directory; #データディレクトリ確認
/var/lib/postgresql/14/main #データディレクトリの場所

/usr/lib/postgresql/14/bin/initdb #initdbコマンドの場所
/usr/lib/postgresql/14/bin/initdb -D [path] #initdbコマンド pathの指定が必要
/usr/lib/postgresql/14/bin/initdb -D /var/lib/postgresql/14/main #コマンド例

/etc/postgresql #設定ファイルの場所
/etc/postgresql/14/main #設定ファイルの場所

#Postgresの動作確認
sudo systemctl status postgresql #状態確認
sudo systemctl restart postgresql #再起動
sudo systemctl enable postgresql #自動再起動の設定

ユーザーをpostgresへ変更:


su - postgres #ユーザーをpostgresに切替
ユーザーをpostgresへ変更します。Postgresでは、重要なコマンドはPostgresユーザーが使います。Rootユーザーではなく、Postgresユーザーがある理由は、主にセキュリティのためです。

データベースを初期化する:


/usr/lib/postgresql/14/bin/initdb -D /var/lib/postgresql/14/main
initdbコマンドの後ろには-Dオプションがあり、データベースを保存するディレクトリを指定します。ここではデフォルトの/var/lib/postgresql/14/mainをPパスに指定しています。

解説:


initdb は initiate database の省略で、「データベース初期化」と日本語訳できます。

PostgreSQLのinitdbコマンドが存在する場所は、開発の経緯から、リナックスのディストリビューションやバージョンによって異なっています。例えばUbuntuとCentOSでは、ディレクトリ名が異なっていたりするので、初心者は気を付けたいです。

「データベース」と、「データベースを保存する場所」を区別するために、前者をDatabase(データベース)と呼び、後者をDatabase cluster(データベースクラスター)と呼び分けています。データベースクラスターには、Postgresの設定ファイルも含まれます。

探究資料:


PostgreSQL 14.2 Documentation.

スポンサーさん

エラー initdbコマンド not empty

エラー文章:


initdb: error: directory "/var/lib/postgresql/14/main" exists but is not empty. If you want to create a new database system, either remove or empty the directory "/var/lib/postgresql/14/main" or run initdb with an argument other than "/var/lib/postgresql/14/main".

解説:


このエラーは、initdbコマンドの指定したディレクトリに、すでにデータが入っている場合に発生します。

対策:


rm -rf /var/lib/postgresql/14/main #データのあるディレクトリを消去する
/usr/lib/postgresql/14/bin/initdb -D /var/lib/postgresql/14/main #もう1度initdbコマンド

PostgreSQL14 ubuntu22 initdbコマンド 探究資料

科目別 By Curriculum


大学受験  情報科学(Computer science)

単元別 By Subject


情報科学  プログラミング(Programming)
情報科学  パイソン (Python)
情報科学  ウェブ(Web)
情報科学  ウィンドウズ(Windows)
情報科学  ギットハブ(Github)
情報科学  ジャンゴ(Django)

対象児童生徒 By Age


中学数学(二次関数まで!)を履修し終えている生徒
コンピューターの基礎知識を学びたい生徒
自分でプログラム(program)を書きたい生徒
情報科学(Computer Science)を学びたい生徒
大学受験生(国公立高校生+私立中高一貫校生)
大学生+社会人(基礎からやり直したい生徒)


プロ家庭教師コンピューター教材で、重要語句の日本語訳・韓中英訳・別名・解説をまとめています。オンライン学習用で、生徒・保護者・教員・家庭教師のために、無料ダウンロードを提供します。

スポンサーさん