PostgreSQL如何使用createdb等命令

来源:互联网 发布:七微南风知我意2txt 编辑:程序博客网 时间:2024/06/11 05:29

初次接触PostgreSQL,安装完PostgreSQL之后发现网上有很多创建数据库的命令,比如createdb,dropdb等这些简单的命令,无奈打开PostgreSQL安装目录下的SQL Shell命令,发现这些命令并不好用,通过一番了解之后总结如下:

1.      psql,createdb,dropdb这些命令是在dos命令下直接可以使用的,当然首先是需要将PostgreSQL的bin目录配置到环境变量中,你会发现在bin目录下有这些命令的exe文件。如在C:\Users\Administrator>该路径下,直接使用psql,createdb这些命令。

2.      如果没有配置关于用户,主机,端口这些环境变量则需要将这些加入到命令行中,如:

C:\Users\Administrator>createdb –h localhost –U postgres–p 5432 demo

点击回车之后,会让输入数据库的密码,输入之后,你可以通过GUI工具查看已经完成了创建。上述命令的意思是:

-h localhost 是为了确定登录的主机

-U postgres 是确定登录数据库的用户名,其中postgres是安装PostgreSQL数据库时默认的用户

-p 5432 是确定端口号,默认的端口号是5432,如同MySQL的3306

3.      为了不用每次使用psql,createdb,dropdb这些命令时都要输入-h,-U,-p这些参数,可以选择在环境变量中加入配置,如下:

PGHOST=localhost  配置登录主机

PGPORT=5432     配置端口号

PGUSER=postgres   配置登录用户

在环境变量中加入这些配置之后就可以直接使用psql,createdb,dropdb等命令而不需要加入-h,-U,-p这些参数。

4.      删除数据库时会出现类似:

ERROR:  database"demo" is being accessed by other users

描述:  There is 1 other sessionusing the database.

的错误,我要删除的数据库是demo。在GUI工具如:pgAdmin中,我们可以看到数据库是在连接状态,当然可以通过GUI工具直接关闭连接或者删除,当然我们可以通过命令行的方式来处理,首先要关闭指定数据库连接,这里是testdb,如下:

SELECT pg_terminate_backend(pg_stat_activity.pid) FROMpg_stat_activity WHERE datname=’testdb’ AND pid<>pg_backend_pid();

            然后在执行删除数据库命令:DROP DATABASE testdb;