文档介绍:PostgreSQL使用常见的客户端/服务器的模式。一次PostgreSQL会话由下列相关的进程(程序)组成:
服务器进程
它管理数据库文件,接受来自客户端应用与数据库的连接,并且代表客户端在数据库上执行操作。数据库服务器程序叫postgres。
客户端应用
客户端应用可能本身就是多种多样的:它们可以是一个字符界面的工具,也可以是一个图形界面的应用, 或者是一个通过访问数据库来显示网页的 web 服务器,或者是一个特殊的数据库管理工具。一些客户端应用是和PostgreSQL发布一起提供的,但绝大部分是用户开发的。
PostgreSQL服务器可以处理来自客户端的多个并发连接。因此,它为每个连接启动(“forks”)一个新的进程。从这个时候开始,客户端和新服务器进程就不再经过最初的postgres进程进行通讯。因此,主服务器总是在运行,等待客户端连接,而客户端及其相关联的服务器进程则是起起停停。
数据库连接
例子:psql -h -p 10000 -d bcstream_data -U stream -W
Usage:
psql [OPTION]... [DBNAME [USERNAME]]
General options:
-c, --MAND run only mand (SQL or internal) and exit
-d, --dbname=DBNAME database name to connect to (default: "rdbdba")
-f, --file=FILENAME mands from file, then exit
-l, --list list available databases, then exit
-?, --help show this help, then exit
Connection options:
-h, --host=HOSTNAME database server host or socket directory (default: "local socket")
-p, --port=PORT database server port (default: "5432")
-U, --username=USERNAME database user name (default: "rdbdba")
-w, --no-password never prompt for password
-W, --password force password prompt (should happen automatically)
对象创建
1、创建用户及数据库
CREATE USER stream WITH PASSWORD '1qaz!QAZ';
CREATE DATABASE bcstream_data WITH OWNER=stream TEMPLATE=template0 ENCODING='UTF8';
说明:
用户与角色说明
在PG数据库中用户与角色为同一概念。区别在于:使用create role语句创建角色时没有login权限,需单独赋权
配置远程连接访问:
postgresql默