분류 전체보기
-
[PostgreSQL] Schema 변경DB/PostgreSQL 2016. 12. 23. 09:48
set search_path to 변경할 스키마; -- 예시 abcd.temp1 public.temp2 과 같이 abcd 스키마에는 temp1 테이블, public 스키마에는 temp2 테이블이 존재한다고 가정 select * from temp1; ERROR: relation "temp1" does not exist set search_path to abcd; -- abcd스키마로 변경 select * from temp1; -- 성공
-
[PostgreSQL] pq: current transaction is aborted, commands ignored until end of transaction block 에러 해결법DB/PostgreSQL 2016. 12. 20. 17:20
해당 오류는 트랜잭션 수행 중간에 쿼리가 오류를 생성되고 롤백을 실행하지 않고 다른 쿼리를 실행하려고 할 때 PostgreSQL이 발생시키는 에러입니다. 이 문제를 해결하려면 잘못된 쿼리가 실행되는 코드의 위치를 파악해야합니다. postgresql 서버에서 log_statement와 log_min_error_statement 옵션을 사용하면 도움이 됩니다. 또는 에러가 발생되는 해당 쿼리 부분의 데이터들을 전부 truncate 하면 해결되기도 합니다. 문제점트랜잭션 블록에서 쿼리 실행 열려있는 트랜잭션 블록에 잘못된 구문 또는 잘못된 쿼리가 실행되어 오류가 발생 오류로 인해 트랜잭션 블록이 유효하지 않아져 다음 트랜잭션부터 오류가 발생 이러한 문제가 발생되면 트랜잭션을 롤백하고 전체 데이터를 초기화 시키..
-
[Linux] /etc/sudoers (visudo) 파일 에러 해결법서버 2016. 12. 19. 21:00
보통 사용자 계정에 권한을 주려고 visudo로 /etc/sudoers파일을 열거나 vi로 오픈하여 수정합니다. 이때 추가 및 수정한 부분에 대해 에러가 날 경우, sudo 명령어가 먹히질 않습니다.$ sudo vi /etc/sudoers ...(생략) test ALL=NOPASSWD:vi # 입력 :wq! 위와 같이 잘못된 위치를 지정하고 강제로 저장한 다음, 해당 파일을 열려고 하면 아래와 같이 출력됩니다.$ sudo vi /etc/sudoers >>> /etc/sudoers: syntax error near line 32
-
[Linux] sudo, su의 차이점서버 2016. 12. 19. 20:46
차이점sudo: 현재 계정에서 다른 계정의 권한만 빌림su: 다른 계정으로 전환su -: 다른계정으로 전환 + 그 계정의 환경변수 적용상세내용sudo는 root가 아닌 사용자가 root에 준하는 능력으로 sudo 다음에 나오는 명령을 실행하게 하는 명령어입니다. su는 root 패스워드가 필요하지만 sudoer에서 사용을 허락한 사용자는 모두 패스워드와 관계없이 쓸 수 있습니다. sudo는 슈퍼유저, 관리자 권한을 가지지만 근본적으로는 해당 사용자가 내리는 명령입니다. sudo su는 일시적으로 그 명령은 root가 내리는 명령입니다. 예를 들어 sudo로 작업하면서 디스크에 쓰기를 해야하면 소유자가 지금 사용자로 나옵니다만, sudo su로 작업하면 소유자가 root가 됩니다. sudo -s는 sudo..
-
[Linux] 리눅스 계정에 특정 명령어 root 실행 권한 주기서버 2016. 12. 19. 20:30
sudo 명령어... 로 한 다음, 비밀번호를 입력하면 전부 열리지만 간혹 실행이 되지 않는 경우가 있습니다. 이때 해당 로그인된 계정에 특정 명령어에 대한 root 권한을 주어 실행할 수 있도록 하는 방법입니다. 예제로 test 계정으로 아파치를 제어할 수 있도록 변경합니다. test 계정으로 아파치를 제어할 수 있어도 아파치의 시작, 종료 등의 권한만 있고, 프로세스 실제 소유자는 여전히 root입니다.계정 생성[root@localhost ~]# useradd test [root@localhost ~]# echo 'qwer1234' | passwd --stdin test Changing password for user test. passwd: all authentication tokens update..
-
[Linux] 리눅스 sudo 패스워드 입력 없이 사용하기서버 2016. 12. 19. 20:11
우분투 계정을 만든 다음, 아래와 같이 관리자 권한이 필요한 부분에서 sudo를 사용하면 아래와 같이 비밀번호를 입력하라는 프롬프트 창을 본 적이 있을 것입니다.$ sudo mkdir test password: 아래부터는 우분투에서 이러한 sudo 패스워드 없이 명령어를 사용하는 방법을 설명하겠습니다./etc/sudoers/etc/sudoers 파일에 다음 형식으로 내용을 추가하면 됩니다.사용자명 ALL=NOPASSWD: ALL여기서 NOPASSWD: 를 빼면 sudo 실행 시, 사용자명의 패스워드를 입력해야만 합니다. 전체 명령어가 아닌 사용자에 따라 명령어를 지정할 수도 있습니다.사용자명 ALL=NOPASSWD: 명령어1, 명령어2예제전체 명령어 허용test라는 계정으로 로그인 후 관리자 계정 접속[..
-
[Linux] sudo 실행 시 비밀번호 미리 입력하여 실행하기서버 2016. 12. 19. 17:47
제목 그대로 맨 처음 'sudo [명령어]...' 실행 시 비밀번호를 입력하라는 prompt 창을 확인할 수 있습니다.$ sudo vi test Password: 불가피하게 sudo로 명령어를 실행하고 추가적인 prompt창 없이 바로 실행하도록 하고싶을 때 아래와 같이 사용합니다.echo '비밀번호' | sudo -S 명령어 # 예시 $ echo '1234' | sudo -S vi test.txt 여기서 sudo의 -S 옵션은 sudo가 표준 입력으로부터 암호를 읽도록 합니다. 만약 이미 sudo [명령어]를 사용해 비밀번호를 이미 입력한 다음, 위와같이 실행하면 sudo의 액세스 토큰이 활성화가 되어 있어 에러가 발생할 수도 있습니다. 이러한 액세스 토큰을 리셋하기 위해선 아래와 같은 명령어를 입력합..
-
[PostgreSQL] psql 명령어DB/PostgreSQL 2016. 12. 16. 18:02
postgres 데이터베이스에 postgres 유저 접속$ psql -U postgres -d postgres postgres 사용자의 암호:psql에 지정한 비밀번호로 접속$ PGPASSWORD=password psql -U postgres -d postgres psql (9.5.4) 도움말을 보려면 "help"를 입력하십시오. postgres=#psql에서 query 실행$ PGPASSWORD=password psql -U postgres -d postgres -c 'select * from test'psql에서 .sql 파일에 저장되어 있는 쿼리 실행$ PGPASSWORD=password psql -U postgres -d postgres -f test.sql $ PGPASSWORD=password..
-
[PostgreSQL] function (저장 프로시저)DB/PostgreSQL 2016. 12. 16. 16:47
postgresql의 function을 설명하기에 앞서 먼저 저장 프로시저를 설명하겠습니다. 타 데이터베이스에서 부르는 저장 프로시저는 PostgreSQL의 function (이하,. 함수)와 같은 개념이기 때문입니다.저장 프로시저란?저장 프로시저란 SQL 로 만든 함수입니다. 이 함수에 여러 SQL문을 작성해 사용합니다.사용 이유단위 하나로, 작업을 만들어 저장 할 수 있기 때문입니다. 모든 이유는 오로지 이 이유 때문입니다. 이 이유 때문에 얻게 되는 건 언어에서 함수를 사용 할 때 얻게 되는 이점과 같습니다. 예를 들어 작업이 단위로 구분되어 있어 디버깅이 쉬워지고 관리 또한 편해지고 반복작업을 없앨 수 있습니다.여기에 SQL 만이 얻는 장점이 하나 추가 할 수 있는데, 바로 보안입니다. 특정 유저..
-
[Shell Script] if ... else 조건문언어/쉘 스크립트 2016. 12. 16. 13:52
쉘 스크립트에 조건문을 사용하는 여러 방식이 있지만 그 중 한 가지 방식만 아래에서 소개합니다.문법if [조건문];then 내용 elif [조건문];then 내용 . . . else 내용 fi예시# test.sh #! /bin/bash if [ "a" == "$1" ]; then echo "1" elif [ "b" = "$1" ]; then echo "2" else echo "0" fi 결과 $ ./test.sh 0 $ ./test.sh a 1 $ ./test.sh b 2조건문을 사용할 때 조심해야 할 점은 대괄호 양 사이에 한 칸을 꼭 띄워써야 됩니다. 만약 붙여서 쓰게되면 에러가 발생합니다. 예를 들어 if ["a"=="$1"] 이와 같이 썼을 경우 실행 시 에러가 발생합니다. 또한 조건문에서 문자열..