최근에 CentOS 7에 PostgreSQL을 설치했습니다. 설치 과정을 정리해봤습니다.

운영환경

  • CentOS 7.6
  • PostgreSQL 11.9

인터넷이 되는 환경

 

# Install the repository RPM:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# PostgreSQL을 설치합니다.
sudo yum install -y postgresql11-server postgresql11-contrib

 

인터넷이 안되는 환경

1. RPM 다운로드

외부 환경에서 PostgreSQL Database Server 11 PGDG 페이지에 접속해서 RPM 파일들을 다운로드 하고 리눅스 환경으로 이동시킨다.

  • postgresql11-11.9-1PGDG.rhel7.x86_64.rpm
  • postgresql11-contrib-11.9-1PGDG.rhel7.x86_64.rpm
  • postgresql11-libs-11.9-1PGDG.rhel7.x86_64.rpm
  • postgresql11-server-11.9-1PGDG.rhel7.x86_64.rpm

2. 설치

postgresql11-libs -> postgresql11 -> (postgresql11-server, postgresql11-contrib) 순으로 설치

 

sudo rpm -ivh postgresql11-libs-11.5-1PGDG.rhel7.x86_64.rpm
sudo rpm -ivh postgresql11-11.5-1PGDG.rhel7.x86_64.rpm
sudo rpm -ivh postgresql11-server-11.5-1PGDG.rhel7.x86_64.rpm
sudo rpm -ivh postgresql11-contrib-11.5-1PGDG.rhel7.x86_64.rpm

 

설치된 패키지 확인

 

rpm -qa | grep postgresql

 

기본 Database 생성

initdb 명령어를 통해 기본 데이터베이스를 설치합니다. 기본 데이터베이스는 postgres 라는 이름으로 생성됩니다.

sudo /usr/pgsql-11/bin/postgresql-11-setup initdb

서비스 등록 및 실행

sudo systemctl enable postgresql-11
sudo systemctl start postgresql-11

 

postgresql 접속

sudo -u postgres psql

 

데이터베이스 생성

postgres=# create database <name> encoding 'utf-8';
 

1. centos이미지에는 영어 언어팩만 설치되어있음

/etc/yum.conf에서 다음을 주석처리한 후!
#override_install_langs=en_US

다음 실행
yum -y -q reinstall glibc-common 

https://www.postgresql.org/docs/9.3/multibyte.html 
2. 위 설정으로 모든게 끝난게 아님 
postgresql 서버가 설치될 때 기본 문자 캐릭터 셋은 sql ASCII임, 이를 해결하려면 처음 initdb --encoding='ko_Kr.utf8' --locale='ko_Kr'
http://blog.daum.net/initdb/103 (기타 옵션에 대해 참고)
처음 이 설정을 안했다면 어쩔 수 없이 DB를 생성할 때 다음과 같이 옵션을 줘서 문자 캐릭터 셋과 locale을 지정해줘야함
CREATE DATABASE "lol_project3" WITH ENCODING 'utf8' LC_COLLATE='ko_KR.utf8' LC_CTYPE='ko_KR.utf8' template=template0;

서버를 지속적으로 돌리다보면 파일을 주기적으로 삭제 해야하는 경우가 있습니다.

물론 파일 생성일을 기준으로 forfile 이라는 명령어를 활용하여 생성일 기준으로 스케쥴링을 걸어 삭제 할 수도있지만

아래의 비베 스크립트로 .vbs 파일을 생성하여 윈도우 스케쥴링에 등록해놓으면 파일의 관리상 용이 할 수가 있죠~

아래의 기본적인 자료는 마이크로소프트의 MSDN에서 가져온 자료이며 비베 자료실에 게시글이 없다보니 참고하시라고 올립니다.~


My.Computer.FileSystem  개체의 DeleteFile 메서드를 사용하면 파일을 삭제할 수 있습니다.  이 메서드에서는 삭제된 파일을 휴지통으로 보낼 것인지 여부, 파일 삭제를 사용자에게 확인할 것인지 여부, 사용자가 작업을 취소했을 때 수행할 작업 등의 옵션을 제공합니다.

텍스트 파일을 삭제하려면


• DeleteFile  메서드를 사용하여 파일을 삭제합니다.  다음 코드에서는 test.txt라는 이름의 파일을 삭제하는 방법을 보여 줍니다.

 


My.Computer.FileSystem.DeleteFile("C:\test.txt")

 

 

텍스트 파일을 삭제하고 사용자에게 파일을 삭제할 것인지 확인하려면


• DeleteFile  메서드를 사용하여 showUI를 AllDialogs로 설정하여 파일을 삭제합니다.  다음 코드에서는 test.txt라는 파일을 삭제하고 사용자에게 파일을 삭제할 것인지 확인하는 방법을 보여 줍니다.

 


My.Computer.FileSystem.DeleteFile("C:\test.txt",
        Microsoft.VisualBasic.FileIO.UIOption.AllDialogs,
        Microsoft.VisualBasic.FileIO.RecycleOption.DeletePermanently,
        Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing)

 

 

텍스트 파일을 삭제하고 휴지통으로 보내려면


• DeleteFile  메서드를 사용하여 recycle 매개 변수에 SendToRecycleBin을 지정하여 파일을 삭제합니다.  다음 코드에서는 test.txt라는 파일을 삭제하고 휴지통으로 보내는 방법을 보여 줍니다.

 


My.Computer.FileSystem.DeleteFile("C:\test.txt",
Microsoft.VisualBasic.FileIO.UIOption.AllDialogs,
Microsoft.VisualBasic.FileIO.RecycleOption.SendToRecycleBin)

hara,노하우게시판 - Visual Basic에서 파일 삭제,http://gamezone.live/?mid=board_SXny42&page=3&document_srl=252034

배치파일을 만들었는데 관리자 권한으로 실행시켜야할 때가 있습니다. 이럴 땐 아래 방법을 사용합니다. 


* 배치파일에 포함된 관리자 권한 실행 코드

@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
    echo 관리 권한을 요청 ...
    goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"=""
    echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"


    "%temp%\getadmin.vbs"
    rem del "%temp%\getadmin.vbs"
    exit /B


:gotAdmin
pushd "%CD%"
    CD /D "%~dp0"

+ Recent posts