728x90
반응형

지난번 VMware에 CentOS Stream 8을 설치해 보았습니다. 이번에는 PostgreSQL13을 설치해 보도록 하겠습니다.

1. PostgreSQL 인스톨

dnf 명령을 실행하여 내장 PostgreSQ: 모듈을 비활성화 합니다.

[root@TypilerServer pgsql]# dnf -y module disable postgresql

PostgreSQL rpm 링크를 아래 사이트에서 찾아 링크 주소를 복사합니다.

https://yum.postgresql.org/repopackages/
 

Repo RPMs - PostgreSQL YUM Repository

9.4 RHEL 8 - x86_64, RHEL 7 - x86_64, RHEL 6 - x86_64, RHEL 6 - i386, RHEL 5 - x86_64, RHEL 5 - i386

yum.postgresql.org

CentOS 8-x86_64 링크에 마우스를 올리고 오른쪽 마우스 버튼을 클릭하여 링크 주소 복사합니다. 콘솔에 아래와 같이 명령어를 입력합니다. 

[root@TypilerServer ~]# yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2. PostgreSQL 서버 패키지 설치

[root@TypilerServer pqsql]# yum -y install postgresql13-server

설치가 완료되면 postgres 계정이 생성된 것을 확인할 수 있습니다.

 

4. 데이터베이스 클러스트 작성

데이터 베이스 클러스트는 데이터 베이스를 저장하는 영역입니다.

[root@TypilerServer pgsql]# su - postgres -c '/usr/pgsql-13/bin/initdb -E UTF8'

5. 데이터베이스 기동

systemctl 을 이용해서 기동을 하려니 동작을 안합니다. 그래서 데몬에 postgresql-13.service 를 등록해 줍니다.

[root@TypilerServer ~]# systemctl daemon-reload
[root@TypilerServer ~]# systemctl enable postgresql-13.service

그리고 데몬을 실행해 봅니다.

[root@TypilerServer ~]# systemctl start postgresql-13.service
[root@TypilerServer ~]# systemctl status postgresql-13.service

정상적으로 구동이 완료되었습니다.

6. 상태확인

[postgres@TypilerServer ~]$ ps -ef | grep pgsql

6. test 데이터베이스 생성

postgres 계정으로 로그인한 뒤 test 데이터 베이스를 생성합니다. 

[postgres@TypilerServer ~]$ createdb test
[postgres@TypilerServer ~]$ psql test

생성 후 psql -l 로 데이터베이스 목록을 확인하면 아래와 같이 test가 추가 되었음을 알 수 있습니다.

 

지금까지 CentOS Stream 8 에 PostgreSQL 13 설치를 진행해 보았습니다. 예전에 설치를 했을때보다 확실히 간소화 되고 자동으로 설정을 진행해줘 설치에는 어려움이 없는것 같습니다. 아직 설정할 것이 남았는데 조금씩 진행해 보도록 하겠습니다. 

https://tylee82.tistory.com/33
 

RadHat9 - postgresql 설치 (성공)

############################################################# # # Title : postgresql 8.3.6 source version install for RadHat9 (Success) # date : 2009.02.26 # Lee Tae Young # ########################..

tylee82.tistory.com

 

728x90
반응형
728x90
반응형

1. 데이터베이스 익스포트

 * pg_dump 데이터베이스 명 > export할 파일명;

--> 예) pg_dump mydb > mydb20050222.sql;

--> pg_dump는 순수하게 sql문을 통해서 익스포트 한다.

 

2. 데이터베이스 임포트

 * psql -f 임포트할_파일명 임포트할_데이터베이스명

--> psql -f mydb20050222.sql mydb

--> sql문 스크립트를 실행하는 방법으로 임포트

728x90
반응형
728x90
반응형
#############################################################
#
# Title : postgresql 8.3.6 source version install for RadHat9 (Success)
# date : 2009.02.26
# Lee Tae Young
#
#############################################################
#참고 글
#http://ttongfly.net/zbxe/?mid=database&sort_index=regdate&order_type=desc&page=2&document_srl=45368
#http://blog.naver.com/northshore?Redirect=Log&logNo=30033589147
#http://cafe.naver.com/nipponit.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=662

#압축풀기
tar xvfj postgresql-8.3.6.tar.bz2

cd postgresql-8.3.6

#인스톨
./configure --help

./configure --prefix=/usr/local/pgsql --enable-nls=UTF8 --without-readline --without-zlib --with-perl

make 

make install

#group, user 생성
groupadd postgres

useradd -g postgres postgres

passwd postgres

su - postgres

vi .bash_profile

-------------------------
export PG=/usr/local/pgsql
export PATH=$PATH:$PG/bin
export MANPATH="$MANPATH":$PG/man
export PGLIB=$PG/lib
export PGDATA=$PG/data
-------------------------

source .bash_profile

exit

#data 디렉토리 생성
cd /usr/local/pgsql

mkdir data

chown -R postgres:postgres /usr/local/pgsql/

#데이터베이스를 초기화
su - postgres

cd /usr/local/pgsql

./initdb --encoding=UTF8 -D /usr/local/pgsql/data/ 

#데이터베이스를 가동
./postmaster -D /usr/local/pgsql/data/ &

ps ax|grep post

./psql template1
###################################################################################
Welcome to psql 7.3.2, the PostgreSQL interactive terminal.

Type:  copyright for distribution terms
       h for help with SQL commands
       ? for help on internal slash commands
       g or terminate with semicolon to execute query
       q to quit

template1=#

# 안해도 된다....#######################################################################
우선은 postgres 의 패스워드를 변경하고 postgresql 을 패스워드 모드로 작동하게 하겠습니다.
postgresql 은 기본적으로 아무 사용자가 접근가능한 모드로 작동이 되더군요.이유는 모르겠습니다.
제가 잘못 안 것일 수도 있고..--a..

패스워드를 먼저 변경하도록 하지요.

template1=# alter user postgres with password '1234';
ALTER USER
template1=# select*from pg_user;
usename  | usesysid | usecreatedb | usesuper | usecatupd |  passwd  | valuntil | useconfig
----------+----------+-------------+----------+-----------+----------+----------+-----------
postgres |        1 | t           | t        | t         | ******** |          |
(1 row)

template1=#
###################################################################################

#일단 빠져나온 후 /usr/local/pgsql/data 폴더로 이동하여 pg_hba.conf 파일을 열어서 아래의 내용을 바꿉니다.

cd /usr/local/pgsql/data/

vi pg_hba.conf

###################################################################################
#원격접속용세팅
서버에 직접접속하지 않고 원격으로 데이터베이스에 접근하기 위해서 다음의 세팅이 필요합니다.
/usr/local/pgsql/data/postgresql.conf
-------------------------
listen_addresses = '*'
port = 5432
-------------------------
/usr/local/pgsql/data/pg_hba.conf
-------------------------
host    postgres       postgres       <IP주소>     <인증방식>
-------------------------
###################################################################################

#postgresql 재구동
cd ../bin
./pg_ctl restart -D /usr/local/pgsql/data/
./psql template1

728x90
반응형
728x90
반응형



728x90
반응형
728x90
반응형
728x90
반응형
728x90
반응형

자바 프로젝트에서 데이터베이스를 postgreSQL을 이용하는 경우, JDBC를 새로 받는다.

다운로드 사이트 : [http://jdbc.postgresql.org]

JDBC를 이용하여 데이터베이스에 연결하는 방법 예제...

import java.sql.*;
public class Untitled1 {

  public Untitled1() {
  }

  public void test() {

    try {
      String url = "jdbc:postgresql://localhost/mydb";
      String user = "Administrator";
      String password = "000000";

      Class.forName("org.postgresql.Driver");

      Connection con = DriverManager.getConnection(url, user, password);
      Statement stmt = con.createStatement();
      ResultSet rset = stmt.executeQuery(" select city from weather ");

      System.out.println("결과 ==>> ");

      if(!rset.next()) {
        System.out.println("Nothing!");
      } else {
        String show = rset.getString(1);
        System.out.println("->> "+show);
      }

      if(rset != null) rset.close();
      if(stmt != null) stmt.close();
      if(con != null) con.close();
    } catch(Exception e) {
      System.out.println(e.getMessage());
    }

  }
  public static void main(String[] args)  throws Exception {
    Untitled1 untitled11 = new Untitled1();
    untitled11.test();
  }
}


728x90
반응형
728x90
반응형
지난번 솔라리스10에 postgreSQL을 패키지로 설치를 해보았다..
몇가지 문제가 발생하여 8.3.5 버젼으로 업그레이드도 겸사겸사 해보았다..

일단 지난번에 설치시 모르고 설치했던 몇가지 문제가 있었는데..
솔라리스10은 기본적으로 postgreSQL과 MySQL이 패키지로 설치가 되어있다.

이부분에서 문제가 발생하는것이 아무리 postgreSQL을 8.3.x 버전으로 설치해도 기존 설치된 패키지를 읽어서 8.1.11이 구동된다는 것이다. 

정말로 "pkginfo | grep postgr"을 실행하면 postgreSQL 패키지들이 검색이 된다.
이렇게 검색된 패키지는 "pkgrm [패키지명]" 을 이용하여 먼저 삭제를 하는 것이 좋다.
(8.1.11에 관한 패키지만 삭제하여도 무방한듯...8.2 버전대도 설치가 되어있었는데..이건 뭔지 잘 모르겠다..)

이제 설치를 시작하기위해서 아래 사이트에서 최신 버전을 다운 받자.


다운받은 파일을 압축을 풀자.

#gunzip postgresql-8.3.5.tar.gz

#tar xvf postgresql-8.3.5.tar

그리고 생성된 postgresql-8.3.5 로 이동하여 configure, make, makeinstall을 해준다.

#cd postgresql-8.3.5
#configure --prefix=/usr/local/pgsql
#make
-> All of PostgreSQL successfully made. Ready to install. 메세지가 나오면 성공
#make install
-> PostgreSQL installation complete. 메세지가 나오면 성공

postgreSQL을 관리할 그룹및 유저를 추가해준다. 
단, 그룹추가전에 그룹이 등록되어있는지 먼저 확인후, 없다면 추가해준다.

#groupadd postgres

유저또한, 추가전에 유저가 등록되어있는지 먼저 확인후, 없다면 추가해준다.

#useradd -g postgres -d /usr/local/pgsql -s /bin/bash postgres

다음으로는 인스톨이 성공한 /usr/local/pgsql 폴더의 소유자를 postgres에게 부여한다.

#chown -R postgres:postgres /usr/local/pgsql

postgreSQL에서 data가 만들어질 공간을 만들어주고 이것 역시 postgres에게 소유권을 부여한다.

#cd /usr/local/pgsql
#mkdir data
#chown postgres:postgres data

postgres 계정으로 로그인을 한뒤, PATH 및 lib 경로를 지정해준다.
(난 postgres의 쉘을 bash로 하였다..)

#vi .bash_profile
PATH=/usr/bin:/usr/ucb:/etc:/usr/local/bin:/usr/sbin:/usr/ccs/bin:/usr/local/pgsql/bin:.
LD_LIBRARY_PATH=/usr/local/lib:/usr/lib
JAVA_HOME=/usr/java
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar
MANPATH=/usr/share/man:/usr/dt/man:/usr/local/man/usr/openwin/share/man:/usr/manexport PATH EDITOR MANPATH LD_LIBRARY_PATH JAVA_HOME CLASSPATH
export POSTGRES_HOME=/usr/local/pgsql
export PGLIB=$POSTGRES_HOME/lib
export PGDATA=$POSTGRES_HOME/data
export MANPATH="$MANPATH":$POSTGRES_HOME/man
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":$PGLIB

위 내용을 기입하고 저장한다.

그리고 저장한 profile을 적용하여 준다.

#source ~/.bash_profile

이제 DB를 초기화 해보도록 하자~

#cd bin
#initdb -D /usr/local/pgsql/data

Success. You can now start the database server using:
    postgres -D /usr/local/pgsql/data
or
    pg_ctl -D /usr/local/pgsql/data -l logfile start

-> 마지막에 위와같은 메세지가 나오면 성공이다.

DB를 실행하도록 하자~

#postmaster -D /usr/local/pgsql/data/ &

정상적으로 동작하는지 알아보기 위해 postgreSQL로 접속해보도록 한다.

#psql template1



이로써 모든 설치가 완료되었다.

------------------------------ 참고 팁 --------------------------------
* 버전확인
#postmaster --version

* 외부접속 설정
#vi pg_hba.conf
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
host    all         all         192.168.130.0/24          trust   <--192.168.130.xxx 의 아이피는 접속 허용
host    all         all         192.168.128.0/24          trust   <--192.168.128.xxx 의 아이피는 접속 허용

* 특정 ip만을 접속 할경우
host    all         all         192.168.128.133/32          trust   <--192.168.128.133 의 아이피만 접속 허용

#vi postgresql.conf
#listen_addresses = 'localhost' --> listen_addresses = '*'
#port = 5432 --> port = 5432

윗부분을 찾아서 주석제거후 위 구문으로 고친다.

* database 만들기
#createdb [DB명]

* user 만들기
#createuser [유저명]


728x90
반응형
728x90
반응형

아~ 이거 설정때문에 한참을 고생했다..ㅡ.ㅡ;;

방법은 간단.../usr/local/pgsql/data/pg_hba.conf 에서 다음을 추가해준다.

host       all          all     클라이언트ip /32       trust

그리고 postgresql.conf 파일에서 다음을 수정해준다. (# 주석 제거)

listen_addresses = '*'
port = 5432

자~ 이제 아쿠아로 접속~~!!!!

listen_addresses = '*' <--- 에서 localhost를 *로 바꿔주는 부분은 잘 모르겠는데...혹시 아는 사람 댓글 부탁이요~
728x90
반응형
728x90
반응형

-# 는 root
-$ 는 postgres (매우 중요합니다.)

1)최신소스 받기
ftp://linux.sarang.net/mirror/database/postgresql/
최신버전을 다운받는다. (2000년 3월 24일 현재 7.0.3버전)

2)db-super-user 생성
-#groupadd -g 233 postgres        : 그룹생성
-#useradd -g postgres -d /usr/pgsql postgres : 사용자생성
-#passwd postgres    : password 설정
passwd : *******
passwd : *******

3)압축풀기
-#cd /usr/local/src
-#tar xvf /root/postgres-<버전>.tar.gz
-#cd postgres-<버전>
-#vi INSTALL -->설치문서을 반드시 읽어볼것.
-#cd src


4)환경설정
-#./configure --help
-#./configure --prefix=/usr/local/pgsql
--enable-multibyte=EUC_KR
.....

5)make
-#make COPT=-m486
// 또는 -#gmake COPT=-m486

6)설치
-#make install
// 또는 gmake install
-#cd ../doc
-#make install    // man 설치

7)data-디렉토리 생성
-#mkdir /usr/local/pgsql/data

8)소유권 변경
-#chown -Rf postgres.postgres /usr/local/pgsql

9)postgres 슈퍼유저 작업
-#su - postgres
-$vi .bash_profile  // 다음라인 추가
PATH에 :/usr/local/pgsql/bin 추가
PGLIB=/usr/local/pgsql/lib
PGDATA=/usr/local/pgsql/data
LD_LIBRARY_PATH=/usr/local/pgsql/lib
MANPATH=$MANPATH:/usr/local/pgsql/man

export PGLIB PGDATA MANPATH LD_LIBRARY_PATH
-$source .bash_profile

10)data 생성
-$/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
.data - 생성..

11) 데이터베이스구동하기
/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
혹은
/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start
-->종료하기는 당근 stop이겠져? :-)

-$createdb test
CREATE TEST....  // test database 생성
-$psql test
  psql=#            // 나오면 정상.
  psql=# q          // exit

12)데몬 설정(부팅시)
-$exit
-#vi /etc/rc.d/rc.local // 다음라인 추가
su - postgres -c "postmaster -i -S -D /usr/local/pgsql/data"

13)계정추가하기
-$cd /usr/local/pgsql/bin
-$createuser ymtech
Shall the new user be allowed to create databases? (y/n) y
Shall the new user be allowed to create more new users?
(y/n) n -->보안상...알져?
CREATE USER
-
14)백업하기
postgreSQL의 모든 데이터는 pgdump을 이용하여 모두 한 파일로
옮길수 있고 다시 그 파일을 이용하여 다른 머신의 postgreSQL에
이식할수 있다. (와우~ 이 얼마나 편리한가?)
당근 이말은 곧 간단한 방법으로 백업이 가능하다는 것이다.
-export하기
$pg_dump [db이름] > [생성목적파일](예를 들어 ymtech.pgdump
라 하자)
                  그럼 잠시후 ymtech.pgdump가 만들어진다.
-import하기
$/usr/local/pgsql/bin/psql -d [DB이름] -f ymtech.pgdump(<--예제)


15)인터넷에서 접근하기
-아파치나 톰캣의 설정은 다른 문서을 참조하세여...
-$cd /usr/local/pgsql/data
-$vi pg_hda.conf
  아이피와 서브넷마스크를 수정한다.
  나의 설정은 아래와 같습니다.
local  all                                  trust
host  all    127.0.0.1    255.255.255.255    trust
host  all    192.168.2.41 255.255.255.0      trust
(여기서 나의 아이피는 192.168.2.41이며 마스크는
255.255.255.0이다)

-여기까지 한후 다시 postgreSQL을 재구동합니다.
$/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data stop
$/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data start
728x90
반응형
728x90
반응형

오늘은 어제에 이어서 나머지 설치를 해야하는데...;;;
약간 난이도가 있을것 같다...좀 복잡한게 남은듯..ㅡ.ㅡ;;

일단은 postgrSQL을 다운을 받자~!!




우선...postgreSQL... 이건 뭘까..?? database인건 알겠는데...처음 들어보는 거다...
일단 꽁짜니깐..MySQL 정도라고 생각하고 넘어가자~!!!!


자~ 일단 패키지로 받았기 때문에 어제와 같은 방법으로 설치를 해보자~!!


(pkgadd 화면은 너무 길어 생략하겠음..!!)

설치가 다됬으면 설치한 디렉토리로 이동한다. (패키지의 기본 설치디렉토리는 /usr/local 이다.)


데이터베이스를 초기화 해준다.

근데...ㅡ.ㅡ;;;
아래 메세지가 나왔다..


이런젠장...ㅡ.ㅡ;;
음..뭔가 폴더가 있어야 하는가 보다...ㅡ.ㅡ;;

찾아보니 data 폴더를 postgres 라는 권한자를 생성하여, pgsql 폴더 밑에 data 폴더를 만들고 권한을 준다...
일단 난 패키지 설치를 했기 때문에, /etc/passwd를 보니 postgres 라는 사용자가 자동으로 추가 되어있었다..


UID와 GID가 90이다... 일단 확인 완료~!!!!

그럼 이제 data 폴더를 만들고 실행~!!!



제길...이번엔 root 권한으로 하지 말란다...ㅡ.ㅡ;; 장난하냐~!!!!!
그럼 일단 다시~ data폴더의 권한을 변경후 postgres로 계정 변경을 하고, 실행!!!!!




(중간 생략...)



마지막에 위 그림처럼 메세지가 나오면 성공!!!!! (휴~ 힘들군..)

위 작업으로 기본데이터베이스가 생성이됬다..
그럼이제 데이터베이스를 가동해보자~!!!!!!



ps 명령어를 실행하여 지금 현재 실행중인 프로세스를 확인해 본다...위 그림에 프로세스번호 1425 확인~!
역시 ps에서도 1425가 확인 된다...(postgres)



이렇게 되면 데이터베이스가 동작 된거라고 한다~

그럼 이제 로그인을 해보자~


'template1=#' 이것이 명령어 대기 쉘이라고 한다...(모양한번 이상하네.ㅡ.ㅡ;;)

자~ 이제 해야할것이 있다...바로 postgres 패스워드 변경, 그리고 postgres를 패스워드 모드로 작동하게 하는 변경 작업이다. (postgreSQL은 기본적으로 아무나 접근이 가능하다고 한다...왜일까?? )

우선 패스워드부터 변경을 해보자~ (작업하다가 약간의 오타가 났다..ㅡ.ㅡ)



일단 빠져나온 후, /usr/local/pgsql/data/pg_hba.conf 파일을 수정한다.



pg_hba.conf 의 내용중 아래 trust를 password로 변경해준다..



그리고 재구동하고 다시 로그인을 해보자~!!!
어라~ 근데...중지를 못한다..ㅡ.ㅡ;;


일단 뭔지 모르겠지만...아까 postgreSQL을 빠져 나올때 ctrl+z 로 나와서 그런것 같은 느낌이 든다...
설명서를 읽어보니 종료하는 벙법이 몇가지 적혀 있는데 fast 로 리스타트를 해보겠다..




일단 restart 성공~!!!

다시 로그인을 해보자...



자~ 비밀번호를 물어본다..ㅋㅋ

설치 성공...!!!

무려 4시간동안 설치했다..ㅡ.ㅡ;; 힘들다...;;;;;;;;;

참고: 몇가지 유용한 팁!
\q: 나가기
\d: 테이블목록 확인
\d 테이블명: 테이블상세 보기
\?: 관리쪽 명령어 보기
\h: SQL 명령어 확인

728x90
반응형

+ Recent posts