Postgresql 명령어 정리

Postgresql 의 명령어를 간단히 정리해보겠습니다.

항상 잊어버리는 명령어를 기록해두기위한 차원입니다.

console 접속

$ psql database_name

접속 종료

-# \q

database list

-# \l

database create

CREATE DATABASE sentry WITH ENCODING='UTF8' OWNER=postgres;

database select

-# \c database_name

사용자 목록 표시

-# \du

Role 생성

-# CREATE ROLE <role name> WITH LOGIN;

Role 추가

ref: PostgreSQL: Documentation: 8.1: ALTER ROLE

-# ALTER ROLE <role name> WITH LOGIN CREATEDB;

Column 추가

phone 컬럼 추가: not null, default 값은 false

database_name-# ALTER TABLE users ADD COLUMN phone boolean not null default false;

Column 삭제

database_name-# ALTER TABLE users DROP COLUMN phone;

Constraint 추가

ALTER TABLE app_config
    ADD CONSTRAINT ukey_app_config_app_id UNIQUE (app_id);

Constraint 삭제

ALTER TABLE app_config
    DROP CONSTRAINT ukey_app_config_app_id;

table list

database_name-# \d

현 database의 모든 index list

database_name-# \di 

특정 테이블 정보 보기

users 테이블 정보 보기

database_name-# \d users

database dump

pg_dump 데이터베이스명 > 파일명.dump

$ pg_dump -Fc dbname > outfile

database restore

$ pg_restore --clean database_name my.dump

상세

  • —clean: database를 깨끗히 날리고 새로 생성
  • —no-owner: 소유자 정보는 복원할때 포함하지 않음
  • -h: host name
  • -U: user name
  • -d: database name
$ pg_restore --verbose --clean --no-owner -h localhost -U postgres -d database_name my.dump

sql file execute

  1. Shell
$ psql -U username -d myDataBase -a -f myInsertFile
  1. cli
\i path_to_sql_file

[mysql] 사용자 추가 생성

mysql 사용자 추가 생성 가끔식 하는데 항상 잊어버린다.

해서 기록을 위해 여기 글을 작성한다.

  1. 유저 생성
      create user 'userid'@'%' identified by 'password';

       

  2. 유저에게 모든 권한 주기
      grant all privileges on *.* to 'userid'@'%';

       

  3. 유저에게 특정 DB 권한 주기
      grant all privileges on dbname.* to 'userid'@'%';

       

  4. UTF8로 DB생성
      CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

       

  5. 위의 내용 반영
      flush privileges;

       

앞으로는 이걸보고 하면 되겠다.