一、访问数据库
1、访问本地postgres数据库:
# su – postgres #切换至postgres用户
# psql #直接访问,默认进入本地postgres数据库
2、访问指定的数据库:
# su – postgres #切换至postgres用户
# psql huangxifeng #直接访问本地huangxifeng数据库
3、访问远程数据库
# psql -h 172.16.254.21 -p 5432 -U postgres –d huangxifeng
4、访问数据库过程详解:
以第一种方式为例,当以postgres用户访问数据库时,postgresql产生一个服务进程来接受客户端传过来的请求,并代理客户端执行数据库的各种操作。
# psql #直接访问,默认进入本地postgres数据库
查看数据库字典表pg_stat_activity可以知道有什么用户在访问,访 问什么库以及访问的进程
postgres=# select datid,datname,procpid,usename, xact_start from pg_stat_activity;
datid | datname | procpid | usename | xact_start
-------+------------------+---------+----------+-------------------------------
11511 | postgres | 14190 | postgres | 2010-11-22 17:26:20.022066-05
11511 | postgres | 14145 | postgres |
从查询结果可以看到,数据库名为postgres,有一个进程ID为14190的在访问,开始活动的时间为2010-11-22 17:26:20.022066-05。
进程ID为14190正是服务器产生的进程,代理客户端来执行数据库的各种操作。在linux中通过ps可以看到此进程。
# ps aux|grep postgres|grep 14190
postgres 14190 0.0 1.1 102232 4348 ? Ss 17:21 0:00 postgres: postgres postgres [local] idle
因此,当某一数据库进程异常操作数据库时,要进行中断该进程可通过服务器进程进行
#kill -9 14190;
执行该操作时要谨慎小心,一旦杀掉进程,该客户端已经发送但未执行的SQL和正在执行的SQL都将会失败而丢失。
安全的操作可以通过pg_cancel_backend取消一个后端的当前查询:
postgres=# select pg_cancel_backend(14190);
pg_cancel_backend
-------------------
t
(1 row)
二、创建数据库
Psql创建一个数据库的方式主要是两 种:
1、