#跑偏党# PostgreSQL数据库简明教程

postgresql虽然MySQL在web领域一直以来都占据着灰常重要的地位,然而,由于其东家甲骨文公司一直不被开源领域看好,因此,PostgreSQL在开源数据库领域逐渐成为新的宠儿(另外MaraiaDB也是非常好的MySQL替代品,特别是命令上的兼容),关于两者的优劣,不在本文的讨论之内,至于为什么一个VPS的博客要刊载数据库教程的文章,微魔只能说“技多不压身”啊。另外,掌握一些最基本的数据库操作,微魔觉得还是很有必要的,关于MySQL的基础教程,参见《MySQL在命令行模式下的一些常用命令

PostgreSQL数据库简明教程

本文操作在Ubuntu 14.04下进行,其他系统稍加改动即可通用

1.安装PostgreSQL

apt-get install postgresql postgresql-client

PostgreSQL安装完成后,默认创建了系统用户Postgres,接下来我们就用这个用户进行操作

sudo su - postgres

2.登录PostgreSQL控制台

psql

3.修改Postgres密码

\password postgres

4.新建数据库用户vmvps(密码vmvps.com)

create user vmvps with password 'vmvps.com';

5.新建数据库vmvps_blog

create database vmvps_blog owner vmvps;

6.授予权限

grant all privileges on database vmvps_blog to vmvps;

7.退出PostgreSQL

\q

以上即为基本的创建数据库和数据库用户的基本流程

8.登录数据库

psql -U vmvps -d vmvps_blog -h 127.0.0.1 -p 5432

如果本机的话大可不用那么麻烦,这里主要是想引出“远程连接”这个概念,也就是把上面的127.0.0.1换成你VPS的公网ip地址即可,但是,默认PostgreSQL只开启了本地连接,外网是无法连接的(提示refuse或not listening错误)

9.设置PostgreSQL支持远程连接

1)设置pg_hba.conf文件,增加可信任的IP地址

# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
# IPv6 local connections:
host    all         all         ::1/128               ident

增添如下行

# TYPE DATABASE USER CIDR-ADDRESS  METHOD
host  all  all 0.0.0.0/0 md5

注意:上面的0.0.0.0/0为所有ip地址均可以连接,这个设置存在安全隐患,如果你有固定的ip地址,推荐使用其他固定ip地址(以CIDR形式表达)替换上述地址。

2)修改postgresql.conf文件,让PostgreSQL监听外网连接
将原来#注释掉的listen_addresses = ‘localhost’,解除注释并替换为如下字段

listen_addresses = '*'

10.备份/恢复数据库

此处命令大部分缺省了参数-U(用户)、-h(主机地址,默认本机)、-p(端口,默认5432)

1)一般应用:
用pg_dump备份(被分为文本文件)

pg_dump dbname > outfile

psql直接恢复

psql dbname < infile

另外,该命令可以完成远程的读写操作,即直接从远程数据库恢复到另外一个数据库,命令如下

pg_dump -h host1 dbname | psql -h host2 dbname

2)备份数据库集群:
用pg_dumpall备份

pg_dumpall > outfile

恢复

psql -f infile postgres

3)大数据库备份:
a.压缩备份(系统安装的gzip)

pg_dump dbname | gzip > filename.gz

恢复

createdb dbname
gunzip -c filename.gz | psql dbname

cat filename.gz | gunzip | psql dbname

b.split分卷压缩(以1m每卷为例)
备份

pg_dump dbname | split -b 1m - filename

恢复

createdb dbname
cat filename* | psql dbname

c.如果系统安装了zlib库,也可以用以下方式压缩
备份

pg_dump -Fc dbname > filename

恢复

pg_restore -d newdb filename

参考文献:

  1. PostgreSQL新手入门
  2. How to Allow Remote Connection to PostgreSQL Database using psql
  3. PHP100 – Chapter 23. 备份和恢复

猜你 喜欢

关于作者: 微魔

小微魔,大智慧!

发表回复

您的电子邮箱地址不会被公开。