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