Linux での PostgreSQL の構成

Bilal Shahid 2023年6月20日
  1. Linux システムでの PostgreSQL の基本設定
  2. PostgreSQL Linux にまだ存在しない場合はユーザー名を作成する
  3. PSQL シェルで ROLEDATABASE を作成する
  4. PORT CONNECT ツールを使用してデータベースにアクセスする
  5. Linux で PostgreSQL を構成するさまざまな方法
Linux での PostgreSQL の構成

このチュートリアルでは、Linux で PostgreSQL をセットアップする方法を説明します。 詳細なセットアップでは、Ubuntu または Fedora、Bodhi、PepperMint、BackBox などの他の Linux ディストリビューションに焦点を当てます。

Linux システムでの PostgreSQL の基本設定

  1. ターミナルから PostgreSQL をインストールします。

Ubuntu、Debian、または Mint の場合:

指図:

sudo apt-get install postgresql

Arch Linux の場合:

指図:

sudo pacman -S postgresql

Fedora、Red Hat などの YUM インストールの場合は、次の手順を実行する必要があります。

  • ここで CURL コマンドの PostgreSQL バージョン URL を取得します: URL
  • URL を取得したら、この URLCURL リクエストを発行してリポジトリをダウンロードします。

指図:

curl -O [url]
  • 次に、RPM をインストールします。

指図:

rpm -ivh [rpm file name]

このディストリビューションが必要な場合は、後でパッケージをダウンロードすることもできます。

  1. ユーザー Postgres を使用してデータベースに接続します。

PostgreSQL インストールの bin ディレクトリにリンクするコマンドを発行しましょう。

指図:

cd BINPATH (most probably: /var/lib/postgresql/12/main)

パスに入ったら、SUDO -U コマンドを実行してデータベースに接続します。 次のようにクエリを実行します。

sudo -u postgres psql template1

TEMPLATE1 はデフォルトのデータベースですが、上記のクエリの TEMPLATE1 の代わりに定義されているものを使用できます。 接続すると、指定したデータベースに入ります。

  1. データベース POSTGRES のパスワードを設定します。

セッションに入ると、次のようなことがわかります。

postgres=# or template1=#

これは、データベース セッションにログインしていることを意味します。 次のように ALTER ステートメントを使用して、ルート データベース POSTGRES のパスワードを設定しましょう。

ALTER USER postgres with encrypted password '[YOUR_PASSWORD]';

パスワードが変更されると、次の出力が返されます。

出力:

ALTER ROLE

\q コマンドを使用してセッションからログアウトし、再度ログインして目的の変更を確認します。

  1. 接続のための PG_HBA.CONF の変更

Linux 内の任意のファイルを変更するには、ファイルを変更するためのコンソール エディターである VIM を使用します。 VIM がインストールされていない場合は、以下のコマンドをダウンロードして実行できます。

指図:

sudo apt install VIM;

VIM を使用して、ディレクトリ内の PG_HBA.CONF ファイルを編集します。 CD コマンドを使用して MAIN ディレクトリにアクセスできないようにします。

指図:

sudo vim \var\lib\postgresql\12\main\pg_hba.conf

直線が表示され、内部にデータがない場合は、次の行をファイルに追加してください。

local all postgres md5

次に、ESC を押して :wqa と入力し、エディタから EXIT にします。

  1. データベースの作成と Postgres としてのログイン

新しいデータベースを作成するには、次のコマンドを使用します。

sudo -u postgres createdb NEW_DB

確認するには、以下のコマンドを使用してパスワードでログインします。

psql - U postgres -W

POSTGRES の正しいパスワードを入力した後でも、次のエラーが返される場合があります。

psql: error: FATAL: Peer authentication failed for user 'postgres'

これは完全に、PG_HBA.CONF で接続の PEER オプションを変更していないことが原因です。

Linux で PostgreSQL セッションを実行するために必要なのはこれだけです。 以下で説明する他の方法と方法もあります。

PostgreSQL Linux にまだ存在しない場合はユーザー名を作成する

一部のバージョンでは、次のコマンドでユーザーを CREATE します。

指図:

sudo -u template1 createuser --superuser [user_name]

ユーザーが作成されると、最初にパスワードなしで簡単にログインできます。 ALTER ステートメントを使用して、後でパスワードを設定します。

POSTGRES ユーザーは、システムに PostgreSQL をインストールするための root ユーザーとして機能します。 基になるファイルへの書き込みアクセスが必要であり、より高度なセキュリティ機能に使用できます。

PSQL シェルで ROLEDATABASE を作成する

PSQL シェルにログインしたら、次のクエリを使用して新しいデータベースまたはユーザーを CREATE できます。

CREATE ROLE [user_name] LOGIN PASSWORD 'abc123';
CREATE DATABASE [database name] WITH OWNER = [user_name];

PORT CONNECT ツールを使用してデータベースにアクセスする

別のシステムのユーザーとして PostgreSQL セッションに接続するために利用できる別の方法は、次のコマンドを使用することです。

$ psql -h [host_name] -d [database_name] -U [_username] -p [port_number]

これは、さまざまなユーザーをシステムに接続するのに役立ちます。 このコマンドを使用して、サーバーでホストされている PostgreSQL セッションで実行するようにユーザーを構成し、クエリを発行してそのデータベースで作業できます。

接続先の USER を次のように指定するとともに、接続先の DATABASE を指定する必要がある場合があります。

psql -U [user_name] -d [db_name]

Linux で PostgreSQL を構成するさまざまな方法

構成は簡単で効率的であるはずです。 ユーザーとして PSQL に接続しようとするとき、常に最初に PATH を指定してから接続を確立する必要がある場合があります。

これは、以下を使用して簡単に行うことができます。

export PATH=$PATH: [our_bin_directory_path]

この BIN_DIRECTORY はほとんどの場合、var/lib/postgresql/.. またはインストール時に作成される同様のフォルダーです。

PATH 変数を設定したら、SERVICE を機能させるための初期化に取り掛かります。 ほとんどの場合、これは自動的に行われますが、念のため、次のように処理を進めることができます。

//initialization
sudo service postgresql-[version_number] initdb

//starting
sudo service postgresql-[version_number] start

FEDORA または YUM システムでは、コマンドは次のように発行できます。

sudo systemctl start postgresql-[version_number]
sudo systemctl enable postgresql-[version_number]

PGADMIN を Fedora やその他のシステムにインストールして、作業を楽にすることもできます。

著者: Bilal Shahid
Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub