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>;