*

linuxへのPostgreSQLのインストール

公開日: : DB, PostgreSQL


linuxサーバーへPostgreSQLをインストールしたのでインストールと初期設定の手順を載せておきます。

 

PostgreSQLのインストール

yum -y install postgresql-server

インストールと同時に「postgres」というユーザーが自動で作成されます。PostgreSQLではセキュリティ面の都合により、rootからの実行は出来ないようになっています。よって今後のPostgreSQLに対する操作は作成された「postgresql」ユーザーを利用して行っていきます。

 

データベースの初期設定

データベースの初期化処理によって新規データベースクラスタを作成します。

su – postgres
echo $PGDATA
/var/lib/pgsql/data
initdb –encoding=UTF8 –no-locale

-D オプションでディレクトリを指定しない場合は$PGDATAにデータベースクラスタが作成されます。

と、ここでエラーが起きたので読んでみると、

The files belonging to this database system will be owned by user “postgres”.
This user must also own the server process.
The database cluster will be initialized with locale “C”.
The default text search configuration will be set to “english”.
creating directory /var/lib/pgsql/data … initdb: could not create directory “/var/lib/pgsql”: Permission denied

/var/lib/pgsql/data を作成しようとしたが、権限がないので作れなかった模様。ディレクトリの権限を確認すると、

ls -l /var/lib
drwx—— 4 postgres postgres 4096 Jun 14 17:15 pgsql9

「/var/lib/pgsql」ではなく「/var/lib/pgsql9」という名称でディレクトリが作成されています。(バージョン9から変更になったのでしょうか。。。)

オプションでディレクトリを指定してもう一度

initdb –encoding=UTF8 –no-locale -D /var/lib/pgsql9/data

Success. You can now start the database server using:

上手くいったようなのでサーバーを起動します。(ここはrootで)

/etc/init.d/postgresql start
Starting postgresql service: [ OK ]

起動設定

サーバー起動時にPostgreSQLを起動する場合は設定を行います。

chkconfig postgresql on

 

ユーザー作成

DB操作等を行うために任意のユーザーを作成します。今回はDB作成のみ許可するユーザーを作成します。

createuser -d -U postgres -P ユーザー名

-d:databaseの作成許可
-a:ユーザーの作成許可(superユーザー)
-U:PostgreSQLに接続するユーザー名
-P:作成するユーザー名

 このあと、パスワードの入力を求められるので再確認含めて2回入力します。

 

データベースの作成

上記で作成したユーザーを利用してdatabaseを作成します。

createdb -E UTF8 -O オーナー名 -U 接続ユーザー名 データベース名

-E:文字エンコードを指定
-O:作成するデータベースのオーナーを指定
-U:PostgreSQLに接続するユーザーを指定

作成したdatabaseを削除する場合は以下のコマンドを実行

dropdb データベース名

 

ネットワーク経由での接続設定

クライアントからサーバーへ等、ネットワーク経由でdatabaseにアクセスする場合は別途設定を変更する必要があります。

vi /var/lib/pgsql9/data/postgresql.conf

#listen_addresses = ‘localhost’

listen_addresses = ‘*’

vi /var/lib/pgsql9/data/pg_hba.conf

host    all             all             127.0.0.1/32            trust

host    all             all             接続元IP/32            trust

 設定変更後はPostgreSQLを再起動します。

 

以上で終了です。あとは必要に応じてテーブルを作成して利用していきます。

ad_right_top

関連記事

blog_logo_small

PostgreSQL:サーバー起動時の自動起動設定

linuxサーバーでサーバー起動時にPostgreSQLを自動起動する為の設定です。chkconfi

記事を読む

blog_logo_small

MySQL:サーバー起動時の自動起動設定

linuxサーバーでサーバー起動時にMySQLを自動起動する為の設定です。chkconfigの対象が

記事を読む

blog_logo_small

PostgreSQL:バージョンの確認方法

インストールしてあるPostgreSQLサーバーのバージョン確認方法です。   コ

記事を読む

blog_logo_small

PostgreSQL:ロックの確認と解除方法

PostgreSQLを利用していてロックが発生した場合の確認方法と解除方法  

記事を読む

blog_logo_small

MySQL:バージョンの確認方法

インストールしてあるMySQLサーバーのバージョン確認方法です。必要になった時に毎回調べているような

記事を読む

blog_logo_small

mysql:use indexとforce index

遅いクエリを発見したので、 新規でindexを追加したのですが 確認するとどうも利用して

記事を読む

blog_logo_small

MySQL:CentOSへのMySQLのインストール

linuxサーバーへのmysqlのインストール手順について掲載します。   環境情

記事を読む

google以外広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

ad_right_top

linux-pen
【cron】秒間隔で定期実行する為の設定方法

コマンドを定期実行させたい場合に利用するcronですが、普通に利用する

blog_logo_small
【Apache】 ReverseProxy(リバースプロキシ)を設定してサブディレクトで別サーバーの内容を表示

今回はApacheのリバースプロキシ設定について紹介したいと思います。

blog_logo_small
【Apache】 Aliasを設定してサブディレクトでDocumentRoot以外を参照する

今回はApacheのAlias設定について紹介したいと思います。この方

no image
2015:新年のご挨拶

明けましておめでとうございます。 昨年はたくさんの方々に当ブログ

blog_logo_small
MySQL:外部ホストからのDBアクセス方法

MySQLではデフォルトで外部ホストからのアクセスを許可していないので

→もっと見る

  • アクセスカウンター
PAGE TOP ↑