Search

PostgreSQL JDBC

Database 2009.08.12 07:34 Posted by 파란크리스마스

출처 : http://www.lug.or.kr/docs/LINUX/KLDP/KoreanDoc/html/JServ_PgSQL-KLDP-html/JServ_PgSQL-KLDP-5.html

1. JDBC 드라이버 받기

http://jdbc.postgresql.org/download.html

2. JDBC Connection 접속 소스

/**
 * JDBC Connection String Examples
 *
 * jdbc:postgresql:database_name
 * jdbc:postgresql://host/database_name
 * jdbc:postgresql://host:port/database_name
 */

import java.sql.*;

public class PgsqlJdbcTest {

  public static void main(String[] args) throws Exception {
   
    String url = "jdbc:postgresql:db_study"; 
    String usr = "scott"; 
    String pwd = "tiger";

    Class.forName("org.postgresql.Driver");
    
    // -- 1

    Connection conn = DriverManager.getConnection(url, usr, pwd);
    System.out.println(conn);
    conn.close();
    
    // -- 2
    url = "jdbc:postgresql://localhost/db_study";
    conn = DriverManager.getConnection(url, usr, pwd);
    System.out.println(conn);
    conn.close();
    
    // -- 3
    url = "jdbc:postgresql://localhost:5432/db_study";
    conn = DriverManager.getConnection(url, usr, pwd);
    System.out.println(conn);
    conn.close();
  }
}

3. 실행 결과

C:\>java -cp .;postgresql-8.4-701.jdbc4.zip PgsqlJdbcTest
org.postgresql.jdbc4.Jdbc4Connection@89fbe3
org.postgresql.jdbc4.Jdbc4Connection@f81843
org.postgresql.jdbc4.Jdbc4Connection@dd5b

신고

PostgreSQL - 사용자, 그룹, 데이터베이스, 테이블 관리

Database 2009.08.12 07:13 Posted by 파란크리스마스

출처 : http://www.davidpashley.com/articles/postgresql-user-administration.html
http://www.faqs.org/docs/ppbook/x17149.htm

0. DB 콘솔 로그인

C:\pgsql\bin>psql -U postgres template1
psql (8.4.0)
Type "help" for help.

1. 사용자 관리

1-1. 사용자 추가

template1=# CREATE USER scott WITH PASSWORD 'tiger';
CREATE ROLE

1-2. 사용자 조회

template1=# select * from pg_shadow;
 usename  | usesysid | usecreatedb | usesuper | usecatupd | passwd | valuntil | useconfig
----------+----------+-------------+----------+-----------+--------+----------+-----------
 postgres |       10 | t           | t        | t         |        |          |
 scott    |    16384 | f           | f        | f         | f91290 |          |
(2 rows)

template1=# select * from pg_user;
 usename  | usesysid | usecreatedb | usesuper | usecatupd |  passwd  | valuntil| useconfig
----------+----------+-------------+----------+-----------+----------+----------+-----------
 postgres |       10 | t           | t        | t         | ******** |          |
 scott    |    16384 | f           | f        | f         | ******** |          |
(2 rows)

2. 그룹관리


3. 데이터베이스 관리

3-1. 데이터베이스 생성

template1=# create database db_study;
CREATE DATABASE

4. 테이블 관리

4-1. 테이블 생성

C:\pgsql\bin>psql -U scott db_study
psql (8.4.0)
Type "help" for help.

db_study=> create table eng_word (
db_study(> inx integer,
db_study(> end_word varchar(100),
db_study(> primary key ( inx )
db_study(> );
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "eng_word_pkey" for table "eng_word"
CREATE TABLE


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 





 

신고

PostgreSQL 수동 설치

Database 2009.08.12 06:23 Posted by 파란크리스마스

OS : Windows 7


1. PostgreSQL 다운받기


경로 : http://www.enterprisedb.com/products/pgbindownload.do

2. 압축풀기

7z.exe x postgresql-8.4.0-1-windows-binaries.zip -oC:\

3. OS 사용자 만들기 (관리자 권한으로 실행)

C:\pgsql>net user postgres 1234 /add
명령을 잘 실행했습니다.

4. C:\pgsql\bin 폴더 Path에 추가

제어판 > 시스템 > 환경변수의 Path 추가

5. 새로 생성한 postgres로 로그인

C:\pgsql>runas /user:postgres cmd
postgres의 암호 입력:
cmd을(를) 사용자 "BLUESANTA-PC\postgres"(으)로 시작하려고 합니다...

6. 데이터베이스 생성

C:\pgsql>path C:\pgsql\lib;%path%

C:\pgsql>bin\initdb -D data -E unicode --no-locale
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 data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 32MB
creating configuration files ... ok
creating template1 database in data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

    "bin\postgres" -D "data"
or
    "bin\pg_ctl" -D "data" -l logfile start


C:\pgsql>

7. 윈도우 서비스에 등록 (관리자 권한으로 실행)

C:\pgsql>cd \pgsql\bin

C:\pgsql\bin>pg_ctl register -N postmaster -U postgres -P 1234 -D c:\pgsql\data

8. 해당 서비스의 새 로그인 이름 적용

제어판 > 컴퓨터관리 > 서비스 목록 중에서 postmaster 더블 클릭
사용자 선택하고 암호 입력하고 [확인] 선택


9. 서버 실행

C:\pgsql\bin>net start postmaster
postmaster 서비스를 시작합니다..
postmaster 서비스가 잘 시작되었습니다.

신고

PostgreSQL - interval

Database 2007.11.21 10:42 Posted by 파란크리스마스

-- 현재 시간보다 30분 전 시간 구하기
ksmsdb=> select now(), now() - interval'30 minute';
              now              |           ?column?           
-------------------------------+-------------------------------
 2007-11-21 10:29:21.635014+09 | 2007-11-21 09:59:21.635014+09
(1 row)

-- 현재 시간보다 하루 전 날짜 구하기
ksmsdb=> select now(), now()::date - '1 day'::interval;
              now              |      ?column?      
-------------------------------+---------------------
 2007-11-21 10:32:06.629718+09 | 2007-11-20 00:00:00
(1 row)

-- 요일 구하기
ksmsdb=> select to_char(now(),'YYYY년 TMMonth FMDD일 TMDay');
            to_char            
--------------------------------
 2007년 November 21일 Wednesday
(1 row)

-- 날짜형으로 Cast
ksmsdb=> select to_date('2007-11-21', 'YYYY-MM-DD');
  to_date  
------------
 2007-11-21
(1 row)

-- 최근 1시간 전 이후 자료 가지고 오기
select * from tbl1 where timestamp자료형 필드 > now() - interval '1 hour'

신고

PostgreSQL 간단 가이드

Database 2007.08.01 08:04 Posted by 파란크리스마스
참고 사이트

http://www.hqunix.com/wp/?p=266
http://blog.naver.com/ladom/60026225972
http://www.linux.com/guides/solrhe/Securing-Optimizing-Linux-RH-Edition-v1.3/chap27sec224.shtml

사용자 만들기

C:\Documents and Settings\bluesanta>net user postgres 1234 /add
명령을 잘 실행했습니다.

postgres 사용자로 cmd 실행하기

C:\Documents and Settings\bluesanta>runas /user:postgres cmd
postgres의 암호 입력:
cmd을(를) 사용자 "SHRYU\postgres"(으)로 시작하려고 합니다...

데이타베이스 생성

C:\WINDOWS\system32>cd \pgsql

C:\pgsql>path C:\pgsql\lib;%path%

C:\pgsql>bin\initdb -D data -E unicode --no-locale
이 데이터베이스 시스템에서 만들어지는 파일들은 그 소유주가 "postgres" id로
지정될 것입니다. 또한 이 사용자는 서버 프로세스의 소유주가 됩니다.

데이터베이스 클러스터는 C 로케일로 초기화 될 것입니다.

data 디렉토리 만드는 중 ...완료
data/global 디렉토리 만드는 중 ... 완료
data/pg_xlog 디렉토리 만드는 중 ... 완료
data/pg_xlog/archive_status 디렉토리 만드는 중 ... 완료
data/pg_clog 디렉토리 만드는 중 ... 완료
data/pg_subtrans 디렉토리 만드는 중 ... 완료
data/pg_twophase 디렉토리 만드는 중 ... 완료
data/pg_multixact/members 디렉토리 만드는 중 ... 완료
data/pg_multixact/offsets 디렉토리 만드는 중 ... 완료
data/base 디렉토리 만드는 중 ... 완료
data/base/1 디렉토리 만드는 중 ... 완료
data/pg_tblspc 디렉토리 만드는 중 ... 완료
max_connections 초기값을 선택하는 중 ...100
shared_buffers 초기값을 선택하는 중 ...1000
환경설정 파일을 만드는 중 ...완료
data/base/1 안에 template1 데이터베이스를 만드는 중 ...완료
initializing pg_authid ... 완료
시스템 테이블들을 위한 제한 없는 로우 크기를 활성화 하고 있음 ...완료
initializing dependencies ... 완료
시스템 뷰들을 만드는 중 ... 완료
pg_description 자료 입력 중 ...완료
인코딩 변환규칙(conversion)들을 만드는 중 ...완료
내장객체들의 접근 권한을 설정 중 ... 완료
information schema 만드는 중 ...완료
template1 데이터베이스 vacuum 작업 중 ...완료
template1 데이터베이스를 template0 데이터베이스로 복사 중 ...완료
copying template1 to postgres ... 완료

경고: 로컬 연결의 인증 방법을 "trust" 방식을 지정했습니다.
이 값을 바꾸려면, pg_hba.conf 파일을 수정하든지,
다음번 initdb 명령을 사용할 때, -A 옵션을 사용해서 인증방식을 지정할 수 있습니다
.

Success. You can now start the database server using:

    "bin\postmaster" -D "data"
or
    "bin\pg_ctl" -D "data" -l logfile start


C:\pgsql>

NT 서비스에 등록

C:\Documents and Settings\shryu>cd \pgsql\bin

C:\pgsql\bin>pg_ctl register -N postmaster -U postgres -P 1234 -D c:\pgsql\data

PostgreSQL 서버 실행하기

C:\pgsql\bin>net start postmaster
postmaster 서비스를 시작합니다..
postmaster 서비스가 잘 시작되었습니다.

커맨드 실행

c:\pgsql\bin\psql -U postgres template1

외부 스크립트 실행

c:\pgsql\bin\psql -U postgres < D:\DB_DDL\data.20061014.sql

Port 수정

C:\pgsql\data\postgresql.conf

# 제거후, 수정하고 싶은 Port 번호로 변경하고 데이타베이스 재실행

#port = 5432

리눅스 서비스로 등록

- 서비스에 등록

[root@localhost ~]# cp postgresql-8.1.4/contrib/start-scripts/linux /etc/rc.d/init.d/postgresql
[root@localhost ~]# chmod 755 /etc/rc.d/init.d/postgresql
[root@localhost ~]# chkconfig --add postgresql
[root@localhost ~]# chkconfig --level 2345 postgresql on

- /etc/rc.d/init.d/postgresql 수정

prefix, PGDATA의 경로를 설치되어 있는 경로로 설정합니다.

prefix=/usr/local/pgsql-8.1.4
PGDATA=/usr/local/pgsql-8.1.4/data

- SELinux 비활성화(방화벽으로 실행이 안될경우 사용)

/etc/selinux/config에 SELINUX=disabled 설정
신고


 

티스토리 툴바