PostgreSQL14 ubuntu22 initdbコマンド 初期化する>PostgreSQL>情報科学

この記事 > PostgreSQL > 情報科学
作成 更新

None


意味:

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.

全文を読む


Django

Github

Python

Nginx

Windows

Linux

PostgreSQL

ウェブ

プログラミング

中学受験講座

高校受験講座

大学受験講座

社会人講座