Daimon Blog

山在那里

Postgresql Cheatsheet

Postgresql在国外很多开源软件都是开箱即用。比如python的驱动,比mysql驱动好用太多。其实熟悉之后,pg也很好用。功能也非常全面。而且从PG10开始,也支持表级的分片存储。单表上亿记录的处理也不再是麻烦事。

免密登录数据库

$ cat ~/.pgpass

*:5432:*:<username>:<pass>
*:5432:*:<username>:<pass>

备份脚本

#!/bin/bash
date >> /data/script/log/freebuy.log
/usr/pgsql-10/bin/pg_dump -h db01 -U freebuy_prd -Fc freebuy_prd > /data/bak/posgresql/freebuy_prd.dump

连接数调整

查看当前连接数,以及最大连接数

psql

postgres=# select count(1) from pg_stat_activity;
postgres=# show max_connections;

调整最大连接数

$ vi /var/lib/pgsql/10/data/postgresql.conf

...
max_connections = 200                   # (change requires restart)
...

$ systemctl restart postgresql-10

创建数据库与账号

CREATE USER dbuser WITH PASSWORD 'password'; 
CREATE DATABASE exampledb OWNER dbuser; 

改密码

alter user dbuser with password 'xxx';

安装后的配置项

配置外网访问

vi /var/lib/pgsql/11/data/postgresql.conf

# 改listen address

配置用户外网策略

vi /var/lib/pgsql/11/data/pg_hba.conf

# 加入, 建议加在第一行。因为有时候会ssh端口映射过来连接数据库
host    all             all             all                     md5

赋予用户只读权限

create user readonly with password 'password';
\c <db>
GRANT CONNECT ON DATABASE <db> TO readonly;
GRANT USAGE ON SCHEMA public TO readonly;
GRANT SELECT ON mytable TO readonly;

回收权限

revoke all privileges on database <xxx> from <user>;

文章分类目录