LoginSignup
21
6

More than 1 year has passed since last update.

OSS-DB Silver 学習メモその2【initdbについて】

Last updated at Posted at 2023-03-23

はじめに

今回の記事では、「initdb」について簡単に説明していきます。

initdbとは、PostgreSQLのデータベースクラスタを新しく作成するためのコマンドです。

データクラスタとは

データクラスタとは、PostgreSQLにおけるデータベースの格納領域のことです。PostgreSQL上で扱うデータは全てデータクラスタ内で管理されています。
そして、そのデータクラスタを作成するためにinitdbコマンドを使用します。
initdbコマンドを実行すると、データベースクラスタに必要なファイルやディレクトリが作成されます。
initdbの書式は次のようになります。

  • initdb [オプション] [ディレクトリ名]

オプションの種類

initdbのオプションを次の表にまとめていきます。

オプション名 説明
-D、 --pgdate=ディレクトリ データベースクラスタを作成するディレクトリを指定します。
-E、 --encoding=エンコーディング エンコーディングを指定します。
-U、 --username=ユーザー名 管理者ユーザー名を指定します。
-W、 --pwprompt 管理者パスワードを入力するようにパスワード入力のプロンプトを表じさせます。
--locale=ロケール デフォルトのロケールを設定します。

ロケールとは

ロケール(locale)とは、言語・文字コード・カレンダー等の地域に依存する設定情報のことです。
プログラムの実行時に必要となる文字列の言語や表記を設定するために利用されます。
例えば、日本語のロケールでは日付の書式が「年/月/日」になりますが、アメリカ英語のロケールでは「月/日/年」になります。
ロケールを設定すると、検索の性能が低下するなどの問題が発生する場合があります。そのため、PostgreSQLで日本語を使う場合にはロケールを無効にすることが推奨されています。

エンコーディングとは

エンコーディング(encoding)とは、文字コードとも呼ばれ、文字をビットやバイト列に変換する方式のことです。
コンピュータが文字を扱うには、それを数値に変換する必要がありますが、エンコーディングによってその変換方法が定められます。
PostgreSQLがサポートする主なエンコーディングにはEUC_JP、UTF-8、SJISなどがあり、それぞれ異なる特徴を持ちます。
正しくエンコーディングを使わないと文字化けが起きたりするなどの問題が発生する恐れがあります。

initdbで良く使われるコマンドの例

  • データベースを初期化する場所を指定する例
$ initdb -D /usr/local/pgsql/data
  • データベースで使用する文字エンコーディングを指定する例
$ initdb -D /usr/local/pgsql/data -E UTF8
  • データベースの所有者となるユーザ名を指定する例
$ initdb -D /usr/local/pgsql/data -U postgres

最後に

今回は、「initdb」について簡単にまとめさせていただきました。

initdbは、PostgreSQLにおいてデータベースを初期化するためのコマンドであり、様々な設定を行うことができます。

これからも私自身が気になったことなどや勉強したことを投稿していこうと思うのでよかったら「いいね」と「フォロー」の程よろしくお願いいたします!

自分が過去に投稿したDB・SQL関連の記事を下記のURLからとべるので、もしよかったらこちらも参考にしてください!

参考資料

21
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
6