Chris's Blog

Keep Walking......

Postgresql常用命令

Postgresql提供了很多快捷的命令,可以很方便的在命令行中使用。以\开头的命令需要进入psql执行。

数据库管理

创建用户

CREATE USER chris WITH CREATEDB ENCRYPTED PASSWORD '123456';

更改用户

ALTER USER chris WITH ENCRYPTED PASSWORD 'chris123';

列出所有的Roles

SELECT rolname FROM pg_roles;

or

\du 

创建Database

CREATE DATABASE dbname;

or

createdb dbname

Grant Right

GRANT ALL PRIVILEGES ON DATABASE mydb to chris;

创建Database并指定Role

CREATE DATABASE dbname OWNER rolename;

or

createdb -O rolename dbname

删除Database

DROP DATABASE name;

or

dropdb dbname

列出所有的Databases

SELECT datname FROM pg_database;

or

\l

切换Database

\c dbname

列出所有的Tablespaces

SELECT spcname FROM pg_tablespace;

or

\db

列出当前Database的所有Tables

\dt

查看Table

\d tablename

列出当前Database的所有Functions

\df

系统管理

以下Postgresql相关的路径信息以Ubuntu为例。

启动/停止服务

启动Postgresql服务:

sudo /etc/init.d/postgresql start

停止Postgresql服务:

sudo /etc/init.d/postgresql stop

重启Postgresql服务:

sudo /etc/init.d/postgresql reload

检查Postgresql进程

ps auxww | grep ^postgres

Database Log

/var/log/postgresql  

查看系统参数

show <parm_name>

查看连接数

select count(1) from pg_stat_activity; 

数据库备份

pg_dump -h host -p port -U user dbname > outfile

数据库恢复

psql -h host -p port dbname < infile

开启远程访问

在postgresql.conf中更改listen_addresses:

sudo vi /etc/postgresql/9.1/main/postgresql.conf       

listen_addresses="*"

在pg_hba.conf中添加host:

sudo vi /etc/postgresql/9.1/main/pg_hba.conf

host  all  all 0.0.0.0/0  md5

调整Database的最大连接数

Postgresql的最大连接数默认是100,如果我们同时有很多程序一起连接,有时是不够用的,可以postgresql.conf中的参数来调大连接数。

sudo vi /etc/postgresql/9.1/main/postgresql.conf

更改以下两个参数的值:

shared_buffers: 25% - 50% of the system RAM
max_connections: max_connections * work_mem < RAM

更改之后需要重启Postgresql,如果遇到SHMMAX not enough的错误,则需要更改SHMMAX的大小。

sudo vi /etc/sysctl.d/30-postgresql-shm.conf

更改kernel.shmmax的值,值的大小可以参考之前错误中的提示。

更改完之后需要reload configure:

sudo service procps start

Comments