프로그래밍 언어/DB

    psql 사용시 쉘 스크립트로 postgres password 바로접속

    컨테이너 내부에 있는 db를 외부에서 접근해서 사용하고자 한다. bash 에서 psql 접속 후 sql문을 바로 사용하려고 한다. psql -U hostname -d postgres 다음과 같이 사용하면 비밀번호를 입력하라는 창이 뜬다. 비밀번호 입력없이 사용하고자 한다면 아래 명령어를 사용하면 된다. [root ~]# PGPASSWORD=pass psql -U [MyUsername] [root ~]# PGPASSWORD=pass psql -U [MyUsername] [myDatabaseName] psql postgresql://[user[:password]@][host][:port][,...][/dbname][?param1=value1&...] psql "postgresql://$DB_USER:$DB_..

    [SQL] postgresql 숫자 포함한 , 숫자 포함하지 않은 행 추출

    숫자가 하나라도 들어있으면 추출 select * from schema.tablename where "date" ~ '[0-9]+' 숫자가 하나도 들어있지 않으면 추출 select * from schema.tablename where "date" !~ '[0-9]+'

    Mysql 명령어 사용해서 사용자 생성/조회/추가/삭제

    mysql 접속 (둘 중 하나로 접속) mysql -u root -p use mysql; mysql -u root -p mysql 사용자 조회 select user,host from user; 사용자 생성 create user '사용자이름'@'localhost' identified by '비밀번호'; 사용자 권한 부여 grant all privileges on 데이터베이스_이름.* to 사용자ID@'localhost'; 권한 변경 후 아래 명령어를 입력해줘야 적용이 된다. flush privileges; 사용자 삭제 - 두가지 방법 drop user 사용자이름; delete from user where user=사용자이름;

    [postgresql] duplicated key value violates unique constraint

    PostgreSQL 은 Sequence로 인덱스를 관리하는데 이것을 프로그램으로 사용했다가 데이터 베이스에 넣어서 사용하면 sequence object 값이 다르게 되어 생기는 문제이다. 이런 경우에는 테이블 내용을 다 삭제해주거나 아래 쿼리문을 사용해서 오류를 해결한다. id 의 최대값과 sequece 의 값이 동일한지 확인한다. select max(id) from 테이블이름.시퀀스이름 ; select nextval('테이블이름.시퀀스이름'); 동일하지 않다면 아래 명령어로 값을 맞춰준다 select setval('테이블이름.시퀀스이름', (eslect MAX(id) from 테이블이름.시퀀스이름)); select setval('table.seq_table', (select max(id) from ta..

    [DBeaver] Mysql - Public Key Retrieval is not allowed

    [DBeaver] Mysql - Public Key Retrieval is not allowed

    DBeaver에서 mysql 을 사용하는데 다음과 같은 에러가 나면서 연결되지 않았다. Edit Connection -> Driver properties 에서 allowPublicKeyRetrieval 을 true 로 변경해준다.

    mysql cli 접속 및 사용자 확인

    mysql cli 접속 및 사용자 확인

    root 계정으로 로그인 하면 접속 되는 것을 확인할 수 있다. mysql -u root -p mysql -u root -p mysql 사용자 확인 위의 명령어에서 mysql 을 사용하지 않고 접속했다면 아래 use mysql 을 입력 해주어야 한다. use mysql; select user, host from user;

    postgresql 현재 db 와 연결된 쿼리 확인하기

    postgresql 현재 db 와 연결된 쿼리 확인하기

    postgresql 에서 pg_stat_activity 를 사용해 현재 수행중인 쿼리를 확인할 수 있다. select datname, pid, usename, application_name, client_addr, client_port, backend_start, query_start, wait_event_type, state, backend_xmin query from pg_stat_activity;

    [PostgreSQL] if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf

    [PostgreSQL] if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf

    postgresql 에서 숫자 데이터를 날짜로 포맷하려고 했다. sql문에서 update 문을 사용하는데 아래와 같은 에러가 나오면서 쿼리문이 작동을 하지 않았다. SQL Error [22007]: 오류: "ì " 값은 "MM"에 ìœ íš¨í•˜ì§€ 않음 (pgjdbc: autodetected server-encoding to be ISO-8859-1, if the message is not readable, please check database logs and/or host, port, dbname, user, password, pg_hba.conf ) Detail: 값은 ì •ìˆ˜ì—¬ì•¼ 합니다. 해결방법 위에 에러 내용을 봐서는 검색해도 해결방법..

    postgresql sequence 시퀀스 만들기

    시퀀스 생성 시퀀스 지우기 시퀀스 시작 숫자 변경하기 create sequence seq_source; drop sequence seq_source; ALTER SEQUENCE seq_source restart with 2;

    postgresql id자동증가 - sequence 만들기

    DB에서 자동 증가를 생성하려고한다. Postgresql , Oracle 은 Sequence 의 독릭 오브젝트를 사용하고 MySQL은 컬럼에 AUTO_INCREMENT 를 사용한다. sequence 만들기 create sequence seq_tablename; drop sequence seq_tablename; CREATE TABLE gtcktest.tablename ( id int8 DEFAULT nextval('seq_tablename'), dominant float8 NULL, contribution float8 NULL, topic text NULL, docid int8 NULL, CONSTRAINT topictab_pk PRIMARY KEY (id) );