Symfoware

Symfowareについての考察blog

ArchLinux(2014.05.01)にPostgreSQL 9.3.4をインストールする

ArchLinuxをインストールしてみました。
ArchLinux(2014.05.01-dual.iso)をKVMにインストールする

以前、ArchLinuxにPostgreSQLをインストールしてみたのですが、
Arch LinuxにPostgresqlをインストールする
てじゅんが変わっていたので、再度メモしておきます。


こちらを参考にしました。
https://wiki.archlinux.org/index.php/PostgreSQL



PostgreSQLのインストール



pacmanコマンドでインストールします。


# pacman -S postgresql



9.3.4がインストールされました。
自動的に、「postgres」というユーザーが作成されます。



データベースの初期化



initdbコマンドで、データベースの初期化を行います。
実行は、「postgres」ユーザーで行います。
rootで実行しようとすると、こんなエラーになります。


initdb: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will
own the server process.




suでpostgresユーザーになり、initdbを実行。


# su - postgres
$ initdb --locale ja_JP.UTF-8 -E UTF8 -D '/var/lib/postgres/data'







データベースの起動



一旦、rootユーザーに戻ります。


$ exit
#




postgresqlを有効化。


# systemctl enable postgresql




postgresqlを起動します。


# systemctl start postgresql




再度postgresユーザーになり、データベースに接続してみます。


# su - postgres
$ psql
psql (9.3.4)
Type "help" for help.

postgres=#




接続出来ました。





その他の設定



その他は、以前の手順と同じです。

Arch LinuxにPostgresqlをインストールする


ユーザーの作成


$ createuser -s -P pgadmin
Enter password for new role: (パスワード入力)
Enter it again: (再度パスワード入力)




外部接続許可


# vi /var/lib/postgres/data/pg_hba.conf




接続を許可するセグメントを追加。


# TYPE DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             192.168.1.1/24         md5




リッスンする範囲を指定。


# vi /var/lib/postgres/data/postgresql.conf



コメントアウトされているlisten_addressesを有効に。
「*」を指定して、すべてのアドレスをリッスンするようにします。


#listen_addresses = 'localhost'
listen_addresses = '*'




ファイルの編集が終わったら、postgresqlを再起動。


# systemctl restart postgresql





外部からの接続テスト用に、sampleというデータベースを作成。
testというテーブルを作成し、データを投入してみます。



# su - postgres
$ psql
psql (9.3.4)
Type "help" for help.

postgres=# create database sample;
CREATE DATABASE
postgres=# \c sample
You are now connected to database "sample" as user "postgres".
sample=# create table test (id int, name text);
CREATE TABLE
sample=# insert into test values (1, 'test');
INSERT 0 1




Javaで適当にサンプルを作成。


  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.Statement;
  5. public class MainProcess {
  6.     
  7.     public static void main(String... args) {
  8.         String master_url = "jdbc:postgresql://192.168.1.101:5432/sample";
  9.         try (Connection con = DriverManager.getConnection(master_url, "pgadmin", "password")) {
  10.             
  11.             Statement stmt = con.createStatement();
  12.             ResultSet rs = stmt.executeQuery("select * from test");
  13.             
  14.             while(rs.next()) {
  15.                 System.out.println(rs.getInt("id"));
  16.                 System.out.println(rs.getString("name"));
  17.             }
  18.         } catch (Exception e) {
  19.             e.printStackTrace();
  20.         }
  21.     }
  22.     
  23. }




実行すると、ちゃんと接続出来ました。


1
test

関連記事

テーマ:データベース - ジャンル:コンピュータ

  1. 2014/05/12(月) 22:27:57|
  2. PostgreSQL
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<PythonフレームワークPyramid 1.5のチュートリアル(pcreate) | ホーム | Proxyサーバー環境下でのArchLinuxのインストール>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1411-ab142c6f
この記事にトラックバックする(FC2ブログユーザー)