Linux下面常常用到psql命令。html
切換Linux系統帳號到root帳號。sql
#CentOS Debian su root #Ubuntu sudo -i #切換到postgres帳號 su - postgres #嘗試不加-區別 su postgres
該帳號下便可輸入psql命令。演示代碼以下數據庫
root@debian:~# su - postgres postgres@debian:~$ postgres@debian:~$ psql psql (9.6.5) 輸入 "help" 來獲取幫助信息. postgres=# create database test; CREATE DATABASE postgres=# \c test 您如今已經鏈接到數據庫 "test",用戶 "postgres". test=# #退出psql命令 test=# \q postgres@debian:~$
psql幫助信息以下windows
postgres@debian:~$ psql --help psql是PostgreSQL 的交互式客戶端工具。 使用方法: psql [選項]... [數據庫名稱 [用戶名稱]] 通用選項: -c,--command=命令 執行單一命令(SQL或內部指令)而後結束 -d, --dbname=數據庫名稱 指定要鏈接的數據庫 (默認:"postgres") -f, --file=文件名 從文件中執行命令而後退出 -l, --list 列出全部可用的數據庫,而後退出 -v, --set=, --variable=NAME=VALUE 設置psql變量NAME爲VALUE (例如,-v ON_ERROR_STOP=1) -V, --version 輸出版本信息, 而後退出 -X, --no-psqlrc 不讀取啓動文檔(~/.psqlrc) -1 ("one"), --single-transaction 做爲一個單一事務來執行命令文件(若是是非交互型的) -?, --help[=options] 顯示此幫助,而後退出 --help=commands 列出反斜線命令,而後退出 --help=variables 列出特殊變量,而後退出 輸入和輸出選項: -a, --echo-all 顯示全部來自於腳本的輸入 -b, --echo-errors 回顯失敗的命令 -e, --echo-queries 顯示發送給服務器的命令 -E, --echo-hidden 顯示內部命令產生的查詢 -L, --log-file=文件名 將會話日誌寫入文件 -n, --no-readline 禁用加強命令行編輯功能(readline) -o, --output=FILENAME 將查詢結果寫入文件(或 |管道) -q, --quiet 以沉默模式運行(不顯示消息,只有查詢結果) -s, --single-step 單步模式 (確認每一個查詢) -S, --single-line 單行模式 (一行就是一條 SQL 命令) 輸出格式選項 : -A, --no-align 使用非對齊表格輸出模式 -F, --field-separator=STRING 爲字段設置分隔符,用於不整齊的輸出(默認:"|") -H, --html HTML 表格輸出模式 -P, --pset=變量[=參數] 設置將變量打印到參數的選項(查閱 \pset 命令) -R, --record-separator=STRING 爲不整齊的輸出設置字錄的分隔符(默認:換行符號) -t, --tuples-only 只打印記錄i -T, --table-attr=文本 設定 HTML 表格標記屬性(例如,寬度,邊界) -x, --expanded 打開擴展表格輸出 -z, --field-separator-zero 爲不整齊的輸出設置字段分隔符爲字節0 -0, --record-separator-zero 爲不整齊的輸出設置記錄分隔符爲字節0 聯接選項: -h, --host=主機名 數據庫服務器主機或socket目錄(默認:"/var/run/postgresql") -p, --port=端口 數據庫服務器的端口(默認:"5432") -U, --username=用戶名 指定數據庫用戶名(默認:"postgres") -w, --no-password 永遠不提示輸入口令 -W, --password 強制口令提示 (自動) 更多信息,請在psql中輸入"\?"(用於內部指令)或者 "\help"(用於SQL命令), 或者參考PostgreSQL文檔中的psql章節. 臭蟲報告至 <pgsql-bugs@postgresql.org>. postgres@debian:~$
PostgreSQL默認不容許非本機鏈接,非本機鏈接數據庫服務器須要修改pg_hba.conf配置文件,Windows系統下配置文件位於安裝目錄data文件夾。api
添加一行,本文添加10.1.1網段256個地址容許MD5方式鏈接數據庫。服務器
# TYPE DATABASE USER ADDRESS METHOD # IPv4 local connections: host all all 10.1.1.0/24 md5 host all all 127.0.0.1/32 md5 # IPv6 local connections: host all all ::1/128 md5 # Allow replication connections from localhost, by a user with the # replication privilege. host replication all 127.0.0.1/32 md5 host replication all ::1/128 md5
鏈接類型有local、host、hostssl和hostnossl4種類型。區別在因而否本地鏈接與是否須要加密鏈接。網絡
address是指一個或多個網絡地址或域名。例如192.168.0.1(1臺主機)、192.168.0/24是指192.168.0網段所有主機。test.example.com是指example.com域名下主機名爲test主機。該字段僅適用於host,hostssl和hostnossl記錄。架構
下面解釋各類鏈接方法(METHOD)。app
trust是指無條件容許鏈接。 該方法容許任何可以鏈接到PostgreSQL數據庫服務器用戶任意方式鏈接,而不須要密碼或任何其餘身份驗證。socket
reject是指無條件拒絕鏈接。
md5方式指客戶端提供MD5加密密碼進行身份驗證。
scram-sha-256是指執行SCRAM-SHA-256身份驗證以驗證用戶密碼。
password方式是指客戶端提供明文密碼進行身份驗證。 因爲密碼經過網絡以明文形式發送,所以不該在不受信任網絡上使用。
gss方式使用 GSSAPI 來認證用戶。僅適用於 TCP/IP 鏈接。
ssapi方式使用 SSPI 來驗證用戶。僅在 Windows 上可用。
ident方式經過聯繫客戶端上ident服務器來獲取客戶端操做系統用戶名,並檢查用戶名是否與請求數據庫用戶名是否匹配。該身份驗證只能在TCP/IP鏈接上使用。當爲本地鏈接指定用戶時,將使用對等身份驗證。
peer方式是指從操做系統獲取客戶端操做系統用戶名,並檢查它是否與請求數據庫用戶名匹配。 這隻適用於本地鏈接。
ldap方式使用LDAP服務器進行身份驗證。
radius方式使用RADIUS服務器進行身份驗證。
ssl方式使用SSL客戶端證書進行身份驗證。
pam方式使用操做系統提供可插入身份驗證模塊(PAM)服務進行身份驗證。
bsd是指使用操做系統提供BSD驗證服務進行驗證。
演示一個Linux完整鏈接windows PostgreSQL數據庫服務器,鏈接完成後操做方式和本地操做基本一致。
#服務器IP10.1.1.1 #數據庫名test #用戶名postgres postgres@debian:~$ psql -h 10.1.1.1 -p 5432 test postgres #輸入用戶密碼 用戶 postgres 的口令: #客戶端版本9.6.五、服務器版本10.0 psql (9.6.5, 服務器 10.0) WARNING: psql major version 9.6, server major version 10. Some psql features might not work. 輸入 "help" 來獲取幫助信息. test=#
數據庫鏈接完成後還有不少命令。例如\c、\d和\password等。
#鏈接test數據庫 \c test #查看數據庫test所有表信息和主鍵、外鍵等信息 test=# \d 關聯列表 架構模式 | 名稱 | 類型 | 擁有者 ----------+-------------------------+--------+---------- public | Student | 數據表 | postgres public | test | 數據表 | postgres public | workerInformation | 數據表 | postgres (3 行記錄) test=# test=# #查看錶信息 test=# \d test 數據表 "public.test" 欄位 | 類型 | 修飾詞 --------+---------+-------- id | integer | number | integer | test=# #修改當前用戶密碼 test=# \password 輸入新的密碼: 再次輸入: test=#
命令直接鏈接test數據庫。
postgres@debian:~$ psql \test psql (9.6.5) 輸入 "help" 來獲取幫助信息. test=#
PostgreSQL 安裝時,操做系統默認建立postgres系統用戶做爲數據庫系統超級管理員,登陸時無需輸入密碼,能夠經過修改pg_hba.conf文件修改登錄設置。
更加詳細鏈接幫助請參考postgresql手冊。
參考連接
https://www.postgresql.org/docs/current/static/app-psql.html
https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html