13 Ekim 2019 Pazar

psql - PostgreSQL interactive terminal

Giriş
psql için bazı notlar

postgresql Kullanıcısı
Açıklaması şöyle. postgresql kullanıcısı psql komutunu çalıştır
There is a sub-class of non-root users that are often called "system users". Despite what the name suggests, they are ordinary users. They just happen to be created for special purposes like running a particular daemon and owning that daemon's files and directories. e.g. user lp for a printer daemon, ftp for ftpd, postgres for the postgresql database, and many more. They usually have a disabled password and their shell set to /bin/false or /usr/sbin/nologin or similar (user postgres is a notable exception because it's fairly common to su to user postgres to run psql for maintenance tasks).
Dump dosyasını geri yüklemek için şöyle yaparız
psql dbname < infile
Auto Complete
Açıklaması şöyle
Q : Is it possible to make autocomplete working in psql on Windows? As I know from Linux users, they can make use pressing TAB to autocomplete, which is quite handy, I guess.

A : psql's autocompletion comes by virtue of the readline or libedit library, whichever was configured when PostgreSQL was built from source. The Windows binaries were built without that support, most likely because there are no Windows ports of these libraries. If you port either of these libraries to Windows, you can build PostgreSQL from source and enjoy command line completion.
Çıktı
Giriş yaptıktan sonra gösterilen bilgi şöyledir
# psql -U myuser -d mydb -h 127.0.0.1 -p 5432 -W
Password:
psql (13.2 (Debian 13.2-1.pgdg100+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256,
compression: off) Type "help" for help.
Seçenekler
-c seçeneği
SQL cümlesini verir
Örnek
Şöyle yaparız.
psql mydb myuser -c "update endpoint set endpoint_group_id = 15 where mac_address='a';"
-d/--dbname seçeneği
Bağlanılacak veri tabanı ismini verir.
Örnek
Şöyle yaparız
psql -h localhost -U postgres -d mydb
-f/--file seçeneği
Çalıştırılacak SQL dosyasını belirtir.
Örnek
Şöyle yaparız
psql -U postgres -f /opt/scripts/test_script.sql
-h/--host seçeneği
Bağlanılacak host ismini belirtir. host ismi belirtilmezse localhost kullanılır.

ON_ERROR_STOP seçeneği
Örnek
Şöyle yaparız
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB"
Örnek
Şöyle yaparız
#!/bin/bash
set -e
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
  create schema test_schema;
  create table test_schema.employee(
          id  SERIAL PRIMARY KEY,
          firstname   TEXT    NOT NULL,
          lastname    TEXT    NOT NULL,
          email       TEXT    not null,
          age         INT     NOT NULL,
          salary         real,
          unique(email)
      );
EOSQL
--set seçeneği
Örnek
SSL ile bağlanmak için şöyle yaparız
psql -h <HOST_NAME> -p 5432 -U <USER_NAME> -W -d <DB_NAME> --set=sslmode=require
-U/--username seçeneği
Bağlantı için kullanılacak kullanıcı ismini belirtir.

-V seçeneği
Şöyle bir çıktı alırız
psql (PostgreSQL) 11.12
-w/--no-password seçeneği
Açıklaması şöyle
Never issue a password prompt. If the server requires password authentication and a password is not available from other sources such as a .pgpass file, the connection attempt will fail. This option can be useful in batch jobs and scripts where no user is present to enter a password.
-W/--password seçeneği
Açıklaması şöyle
Force psql to prompt for a password before connecting to a database, even if the password will not be used.
Şöyle yaparız
psql -h localhost -p 5432 -U postgres -W -d postgres

Meta Commands
Meta Commands yazısına taşıdım

Hiç yorum yok:

Yorum Gönder