PostgreSQL 操作笔记

之前我写了一篇 MySQL操作笔记 用于记录我常用的MySQL操作,事实证明还是 很有用处的,我经常需要翻到。由于今年我的目标之一是用熟PG,我也开始使用PG,但是很多时候不记得,还需要临时去查,因此 再来记录一篇PG的操作笔记,方便以后查阅。

创建用户并授权

$ sudo -u postgres psql
$ psql
> CREATE DATABASE 数据库名;
> CREATE USER 用户名 WITH ENCRYPTED PASSWORD '密码';
> GRANT ALL PRIVILEGES ON DATABASE 数据库名 TO 用户名;

更改用户密码

$ psql
> ALTER USER 用户名 WITH PASSWORD '新密码';

允许远程访问

可能创建完数据库之后,不仅仅要在本地能访问,还希望提供服务让其它机器远程访问,编辑 /etc/postgresql/13/main/pg_hba.conf, 当然如果你的版本不是13,那么路径里的版本号就要对应替换,在最后添加一行:

host all all 0.0.0.0/0 md5

此外还需要更改配置文件 /etc/postgresql/13/main/postgresql.conf,将 #listen_addresses = 'localhost' 取消注释,改为:

listen_addresses = '*'

设置 postgres 用户密码

连接上去之后,执行 \password 命令。

备份

我在 postgres 用户下,加了一个crontab每天全量备份一次:

30 3 * * * /usr/bin/pg_dumpall | gzip -c > /data/backup/postgres/full-backup-$(date +\%F).sql.gz

常见命令

$ psql
> \l 列出数据库
> \c dbname 切换数据库
> \d 列出当前数据库所有表
> \d tablename 列出当前数据库中tablename表的表结构
> \du 列出所有用户

更多文章
  • Python开发实践经验
  • Golang实现平滑重启(优雅重启)
  • traefik 教程
  • Nginx作为TCP/UDP的负载均衡
  • Web开发系列(十):事务和锁
  • Web开发系列(十一):数据库扩展
  • Web开发系列(九):消息队列,异步任务
  • Web开发简介系列
  • Web开发系列(六):关系型数据库,ORM
  • Nginx 请求匹配规则
  • Web开发系列(八):单点故障,负载均衡
  • Web开发系列(七):缓存,CDN
  • Web开发系列(五):form, json, xml
  • Web开发系列(四):Flask, Tornado和WSGI
  • Web开发系列(三):什么是HTML,CSS,JS?