336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MySQL을 설치할 때는 Daemon 들이 root 소유자로 실행되지 않도록 하는 것이 좋다.

보안상 MySQL의 취약성이 발결되어 공격을 당하게 되면 곧바로 root shell을 획득하는 것이

가능하기 때문이다. 따라서 MySQL을 mysql과 같이 일반 계정으로 실행되도록 설치하라.

 

그리고 부팅 시 자동으로 실행되도록 하기 위해서는 다음과 같은 작업 절차를 거친다.


1. mysql.server 파일을 /etc/init.d 디렉토리로 복사

 

2. 'chkconfig --add 복사파일명' 명령을 실행하여 서비스로 등록

 

3. 'chkconfig --level 2345 복사파일명 on' 명령을 실행하여 mysql을 runlevel 2,3,4,5 에서 실행하도록 설정

 

4. 리부팅 후 정상적으로 서비스가 기동되는지 확인


출처 : http://blog.naver.com/unicenter?Redirect=Log&logNo=80025407140

Posted by 역시인생한방
,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

Postgresql 설치 관련해서 정리해봅니다.

아래의 원문을 기반으로 작업을 해보면서 다시 정리를 한 내용입니다.

환경에 따라서는 에러가 나는 경우가 있어서 제 환경에 맞게 다시 정리해본 내용입니다.


* 필자의 OS 환경 : Windows 7 Home premium k, Service pack 1, 64bit 운영 체계

* 원문 : http://blog.naver.com/westminstor.do?Redirect=Log&logNo=80023975150


굳이 Postgresql의 장단에 대해서는 논하지 않겠습니다. 이미 다들 정보들을 입수하여 알고 계실테니...

글을 작성하는 현재의 최신 버전은 9.1.3 이군요.


1. Postgresql 다운받기

다운 경로 : http://www.postgresql.org/download/

사용하는 OS 환경에 맞추어 최신 버전을 다운 받는다.

필자는 윈도우 환경에서 설치해야 하기 때문에 윈도우 64비트 버전을 zip archive를 다운 받았다.

먼저 installer 버전을 다운 받았으나 설치시 에러가 발생하여 zip archive로 다시 다운 받았다. 


* 리눅스/유닉스 관련 설치 정보 : http://richlino.egloos.com/1816137

* Windows Installer Version 설치 정보 : http://specialguy.tistory.com/70


2. 설치해 볼까나~

1) C:\pgsql 폴더 아래에 zip 파일의 압축을 해제


2) 윈도우 사용자 만들기

제어판에 들어가서 사용자 추가

postgres 유저를 생성한다. 샘플이니 비밀번호는 1234로 생성


3) 도스 커맨드 창을 띄우고... runas 실행

>runas /user:postgres cmd

postgres의 암호 입력:

cmd을(를) 사용자 "JSYOON-PC\postgres"(으)로 시작하려고 합니다...


이와같은 메시지가 나타나고 도스 커맨드 창이 새로 뜨게 된다.


4) DB 초기화

c:\> cd \pgsql

c:\pgsql> bin\initdb -D data -E unicode --no-locale


실행내용보기


5) Config 변경
생성된 data 폴더 하부에 postgresql.conf 파일과 pg_hba.conf 파일을 이용하여 설정을 수정할 수 있다.
여기서는 일단 localhost 에서만 접근하지만 다른 아이피 등으로 접근하는 사용자를 위해서 변경하는 방법을 간단히 소개한다.

C:\pgsql\data\postgresql.conf 파일을 오픈하면 중간에 아래와 같은 내용이 있다.
# - Connection Settings -
#listen_addresses = 'localhost'
=> listen_addresses = '*'
localhost 뿐 아니라 다른 아이피로도 DBMS에 접근 가능하도록 설정하는 것이다. 필자는 로컬 테스트만 진행하기에 변경하지 않았다.
포트 변경도 이 파일에서 가능하니 매뉴얼 참조~ (꼭 자기 필요 없으면 설명도 않한다.. 하지만 그게 내 신조임)

6) 서비스 등록
c:\pgsql\bin\pg_ctl register -N postmaster -U postgres -P 1234 -D c:\pgsql\data
여기서 
-U 다음에서는 윈도우 사용자. 앞에서 생성한 postgres
-P 다음에는 postgres 유저의 비밀번호

7) 서버 실행/종료 테스트
a. 서비스로 실행하기
C:\Windows\system32>net start postmaster
postmaster 서비스를 시작합니다..
postmaster 서비스가 잘 시작되었습니다.

b. 커맨드 창에서 실행하기
실행
C:\pgsql>bin\pg_ctl -D data -l logfile start
server starting
아... 이 단촐한 메시지... 시작되었단다.
종료
C:\pgsql>bin\pg_ctl -D data stop
waiting for server to shut down.... done
server stopped
역시 단촐하게 두줄... 서버 멈췄다~ 끝


출처 : http://blog.hometown.co.kr/318

Posted by 역시인생한방
,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

SELECT TOP [출력갯수] * FROM [테이블 명] WHERE [열 이름] NOT IN(SELECT TOP [시작줄] [열 이름] FROM [테이블 명])

 

예)

SELECT * FROM MyTable WHERE idx LIMIT 5,20

변환

SELECT TOP 20 * FROM MyTable WHERE idx NOT IN(SELECT TOP 5 idx FROM MyTable)


출처 : http://blog.hs.pe.kr/40127533058

Posted by 역시인생한방
,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
INSERT INTO Table (Col1, Col2) VALUES (@Val1, @Val2)
    SELECT @Error = @@ERROR, @RowCount = @@ROWCOUNT
    IF @Error != 0 OR @RowCount != 1
    BEGIN
        SET @ErrMsg = 'FAILURE: Cannot insert row'
        GOTO ERROR
    END
  
    ...
  
    RETURN
  
ERROR:
    RAISERROR (@ErrMsg, 11, 1)
    RETURN


출처 : http://www.gpgstudy.com/forum/viewtopic.php?p=110391

Posted by 역시인생한방
,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

datetime -> second

SELECT DATEDIFF( S, '1970-01-01 09:00:00', datetime )

 

second -> datetime

SELECT DATEADD( S, second, '1970-01-01 09:00:00' )

 

* 우리나라는 9시간을 더해주고 빼주는 처리를 해줘야하기 때문에 09:00:00 이 붙는다

Posted by 역시인생한방
,
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

FROM_UNIXTIME( int );

int -> datetime

 

UNIX_TIMESTAMP( datetime );

datetime -> int

 

아우~ 헷갈려~ ㅋ

 

 

 

FROM_UNIXTIME( timestamp )

  주어진 타임스탬프 값으로부터 'yyyy-mm-dd hh:mm:ss' 또는 yyyymmddhhmmss 형식의 날짜를 리턴

  ex) FROM_UINXTIME(875996580)

        - '1997-10-04 22:23:00'

        - 19971004222300

 

FROM_UNIXTIME( timestamp, format )

  주어진 타임스탬프 값을 주어진 날짜 형식에 맞게 바꿔서 보여줌

  ex) FROM_UINXTIME(timestamp, '%y %d %m %h :%i:%s $x') $x는 형식문자가 아니므로 그냥 x가 표시됨

        - '1997 23rd december 03:43:30 x'


Posted by 역시인생한방
,