PostgreSQL安装配置及常见操作

介绍

官网:https://www.postgresql.org/,最新版本:2020-06-25 - PostgreSQL 13 Beta 2 Released!

在这里插入图片描述
PostgreSQL是一个功能强大的开源对象关系数据库系统,除了免费和开源之外,PostgreSQL也是高度可扩展的。例如,您可以定义自己的数据类型,许多功能(例如索引)都定义了API,构建自定义函数,甚至可以使用不同的编程语言编写代码,而无需重新编译数据库!从2019年10月的12版开始,PostgreSQL符合179种SQL:2016 Core一致性强制性功能中的至少160种。

其他可参考中文文档:https://www.docs4dev.com/docs/zh/postgre-sql/11.2/reference/preface.html#%E5%89%8D%E8%A8%80

部署安装

下载地址:
linux:
https://get.enterprisedb.com/postgresql/postgresql-10.12-1-linux-x64-binaries.tar.gz
windows:
https://www.enterprisedb.com/download-postgresql-binaries

解压
解压到D:\tools\ops\postgres\pgsql

创建数据目录
新建一个data文件夹,用来存放数据。

配置环境变量
环境变量名称 环境变量值
Path D:\tools\ops\postgres\pgsql
初始化数据库
$ initdb.exe -D D:\tools\ops\postgres\pgsql\data -E UTF-8 --locale=chs -U postgres -W
期间会提示你输入你要配置的postgres用户的密码!

参数 说明
-D 指定数据库簇的存储目录
-E 指定DB的超级用户的用户名postgres
–locale 关于区域设置(chinese-simplified-china)
-U 默认编码格式chs
-W 为超级用户指定密码的提示
启动数据库
$ pg_ctl -D D:\tools\ops\postgres\pgsql\data -l logfile start
注册为系统服务
$ pg_ctl register -N PostgreSQL -D D:\tools\ops\postgres\pgsql\data
本操作需管理员权限。

CentOS7

安装RPM源

$ yum -y install https://download.postgresql.org/pub/repos/yum/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm

安装客户端

$ yum -y install postgresql11

安装服务端

$ yum -y install postgresql11-server

初始化

$ /usr/pgsql-11/bin/postgresql-11-setup initdb

启动

$ systemctl start postgresql-11

设置自动启动

$ systemctl enable postgresql-11

测试是否安装成功

$ su - postgres
$ createdb testdb
$ psql testdb
$ CREATE TABLE testtable (id varchar(10),name varchar(20));
$ \q
项 说明
默认用户名 postgres
默认密码 无
默认数据库 postgres

常见操作

管理用户

在UNIX平台中安装PostgreSQL之后,PostgreSQL会在UNIX系统中创建一个名为“postgres”当用户。PostgreSQL的默认用户名和数据库也是“postgres”,不过没有默认密码。

以默认用户登录,切换至postgres
$ sudo su postgres
#登入默认数据库
$ psql postgres
#以上命令也可以简化为
$ sudo -u postgres psql postgres
#登录之后给默认用户“postgres”设置密码
#postgres=# \password postgres
Enter new password:
Enter it again:
postgres=#
创建新用户
$ sudo -u postgres createuser username
删除新用户
$ sudo -u postgres dropuser username
退出
$ \q
$ exit

配置远程访问

修改postgresql.conf
$ find / -name “postgresql.conf”
$ vi /var/lib/pgsql/11/data/postgresql.conf
#修改 listen_addresses项值设定为“*”
修改pg_hba.conf
$ find / -name “pg_hba.conf”
$ vi /var/lib/pgsql/11/data/pg_hba.conf
#添加以下内容
#host all all 0.0.0.0/0 md5
$ systemctl start postgresql

查询

列举数据库:\l
选择数据库:\c 数据库名
查看该某个库中的所有表:\dt
切换数据库:\c interface
查看某个库中的某个表结构:\d 表名
查看某个库中某个表的记录:select * from apps limit 1;
查询数据库个数:select count(*) from pg_database where datname like ‘db%’;
显示字符集:\encoding
退出psgl:\q

备份还原

备份:pg_dump -h IP地址 -p 端口 -U 数据库用户名 -f 目标存储文件及路径 目标数据库名
实例:
1)mydatabase是此次操作的目标数据库。
pg_dump -h 192.168.150.127 -U postgres -t test* -a -f ./my_dump.sql mydatabase
// -c: 先输出删除数据库对象的SQL命令,在输出创建数据库对象的SQL命令,对于部署干净的初始系统或是搭建测试环境都非常方便。
2)pg_dump -h 192.168.220.136 -U postgres -c -f ./my_dump.sql mydatabase
//导出mydatabase数据库的信息。在通过psql命令导入时可以重新指定数据库,如:
/> psql -d newdb -f my_dump.sql
/> pg_dump -h 192.168.220.136 -U postgres -f ./my_dump.sql mydatabase
//导出模式为my_schema和以test开头的数据库对象名,但是不包括my_schema.employee_log对象。
/> pg_dump -t ‘my_schema.test*’ -T my_schema.employee_log mydatabase > my_dump.sql
//导出east和west模式下的所有数据库对象。下面两个命令是等同的,只是后者使用了正则。
/> pg_dump -n ‘east’ -n ‘west’ mydatabase -f my_dump.sql
/> pg_dump -n ‘(east|west)’ mydatabase -f my_dump.sql

还原:psql -h IP地址 -p 端口 -U 数据库用户名 -d 目标数据库名 -f 目标存储文件及路径

Postgres允许以linux其他用户身份在命令行登录的

1)修改/usr/local/pgsql/data目录下的文件pg_hba.conf
local all all ident omicron

2)修改/usr/local/pgsql/data目录下的文件pg_ident.conf, 添加
omicron root postgres
3) 重启postgres, 执行
/etc/init.d/postgresql restart

4)访问数据库
/usr/local/pgsql/bin/psql mydb -U postgres

这里用的是psql的绝对路径,如果是用过系统自动安装的情况,直接psql也是可以。

客户端

1)pgAdmin

其是PostgreSQL(世界上最先进的开源数据库)中最受欢迎和功能最丰富的开源管理和开发平台。pgAdmin可以在Linux,Unix,macOS和Windows上使用,以管理PostgreSQL和EDB Advanced Server 9.5及更高版本。

下载地址:https://www.pgadmin.org/download/

2)Navicat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值