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.
質問と回答