虽然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
参考文献: