第一章:起步(First Step)
参考:《PostgreSQL 9 Administration Cookbook,Second Edition》
目录
一、连接服务器
二、网络/远程客户端连接
三、使用图形化界面管理工具
四、使用psql工具
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
一. 连接服务器
1. 会话与连接池
在我们操作数据前,我们需要数据库服务器给我们开启一个会话(session)
会话(Session): 连接-执行许多请求-断开连接;连接上去后,开销是比较小的,但是当你重复的连接/断开连接时,开销将变得越发明显。
连接池(Connection pools): 当你想要再次连接数据库时,连接池可以让之前连接的会话快速的为你提供服务
2. 数据库连接的条件
安装postgres上后,我们可在上面创建多个数据库; 那对于连接来说,我们就需要明确我们要连接的是哪个数据库。所以,你需要确定以下参数:
- 主机地址:Host or host address
- 端口号:Port
- 数据库名字:Database name
- 用户:User
- 密码:Password (or other means of authentication, if any)
连接的条件:
- 主机上有服务器在运行,并监听指定端口
- 服务器上,那个用户及数据要存在
- 主机要允许你的客户端的练接
- 要通过服务器的授权(如密码或者其他的方法)
从postgres 9.2版本开始,可以使用可以URL的形式,提供连接参数:
psql postgresql://myuser:mypasswd@myhost:5432/mydb
#我自己的例子(在终端输入,前提是超级用户已经创建列该用户/数据库/密码):
psql postgresql://u_bootcamp:p4ssw0rd@localhost:5432/bootcamp
3. 数据库集簇:
一个数据库服务器通常又被称为"数据库集簇"(database cluster),因为一个服务器允许你创建一个或多个服务库。
4. 用户、登录角色和角色
一个数据用户(user)用来identify一个连接;通常,一个用户能够建立的连接没有限制(如何限制?);目前新的版本,用户(users)指的是登录角色(login roles);一个登录角色指的是一个已被授予连接权限的角色(role)
5. 查看连接状态(psql)
当你已经通过psql连接,可以通过以下命令,查看连接状态:
postgres=# SELECT current_database();
postgres=# SELECT current_user;
postgres=# SELECT inet_server_addr(), inet_server_port();
postgres=# SELECT version();
postgres=# \conninfo
二、网络/远程用户连接
出于安全性的考量,初始状态,远程连接通常是不被允许的,那如何开启呢?
在/etc/postgresql/9.5/main下面有两个文件,需要配置:
#文件:postgresql.conf
listen_addresses = '*' #允许数据库服务器监听来自任何主机的连接请求
#文件:pg_hba.conf文件(没看懂)
参考:https://blog.csdn.net/ll136078/article/details/12747403
三、使用图形化界面管理工具
四、使用psql工具
1. 连接数据库
psql –h hostname –p 5432 –d dbname –U username
psql postgresql://myuser:mypasswd@myhost:5432/mydb
2. 如果SQL语句命令较多,可以将命令在.sql文件中,执行以下命令:
psql user –f examples.sql
3. 交互模式中的命令
$ psql --进入交互模式
postgres=# \h SELECT --获取SELECT的帮助信息
postgres=# \q --退出交互模式
4. 注释
单行注释: --this is a comment
多行注释: /* this is mutiline comment */
5. 在psql中可执行两种命令:
SQL语句:针对数据库的,以“;”结束
元命令:针对psql的,如退出psql的命令:\q
6. 更改密码:
postgres=# \password username
postgres=# ALTER USER postgres PASSWORD ' md53175bce1d3201d16594cebf9d7eb3f9d';