1.postgresql安装
在centos上安装postgresql可以使用rpm安装包或者yum命令安装。如果使用rpm方式安装我们需要先
到PG官网http://yum.postgresql.org/
的仓库中找到对应的包,下面是安装命令:
$ wget https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-6-x86_64/pgdg-centos95-9.5-2.noarch.rpm
rpm -ivh ./pgdg-centos95-9.5-2.noarch.rpm
或
$ yum install postgresql95 postgresql95-devel postgresql95-libs postgresql95-contrib postgresql95-server
2.数据库初始化
初始化数据库的第一个命令(仅需执行一次)是:
$ service postgresql-9.5 initdb
3.设置开机自动启动
$ chkconfig postgresql-9.5 on
4.启动postgresql服务
$ service postgresql-9.5 start
相关命令:
关闭:service postgresql-9.5 stop
重启:service postgresql-9.5 restart
重新加载:service postgresql-9.5 reload
5.登录并测试
$ su postgres //切换到postgres用户进入bash
$ psql //默认连接localhost
输出内容如下:
psql (9.5.4)
Type "help" for help.
postgres=#
List of databases
Name | Owner | Encoding | Collate | Ctype |
Access privileges
---------------------+---------------------+----------+-------------+-------------+----
-----------------------------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
- \l: 查看已有数据库
- \du:查看所有用户或角色
6.创建数据库和数据库用户
CREATE ROLE testuser LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION PASSWORD '123456';
CREATE DATABASE testdb WITH ENCODING='UTF8' OWNER=testuser;
GRANT ALL PRIVILEGES ON DATABASE testdb to testuser;
7.设置SSH tunnel登录
我们需要修改pg的配置文件/var/lib/pgsql/9.5/data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
#host all all 127.0.0.1/32 ident //这行注释掉
# IPv6 local connections:
#host all all ::1/128 ident //这行注释掉
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128 ident
host all all 127.0.0.1/24 password //添加这行
8.为postgres用户设置密码
默认linux的postgres账户是没有密码的,为了安全可以为其设置密码,如下:
$ passwd postgres
9.相关命令介绍
连接数据库:psql -h localhost -p port -U your-db-username database-name
创建数据库:createdb -h 127.0.0.1 -p 5432 -U postgres testdb
连接数据库:psql -h 127.0.0.1 -p 5432 -U postgres testdb
删除数据库:dropdb -h 127.0.0.1 -p 5432 -U postgres testdb
说明:-h表示主机(Host),-p表示端口(Port),-U表示用户(User)
创建数据表:create table tbl(a int);
删除数据表:drop table tbl;
插入数据:insert into tbl(a) values(1);
查看数据:select * from tbl;
备份数据库:pg_dump -U postgres testdb > d:/testdb.dmp
恢复数据库:psql -U postgres testdb < d:/testdb.dmp
说明:这种方法,实际上是SQL的转储,可加参数(-t)指定多个表。