简介
PostgreSQL 是最强大的开源数据库软件,日益被小公司,大公司青睐,应用非常广泛,市场空间非常大。开源免费,功能强大,稳定快速是它的主要特性优点。
本教程讲解如何快速配置搭建postgresql数据库,基于最新的postgresql 13编写,适用于windows, linux, mac osx. 作者是在ubuntu 20.10完成测试编写文档。安装请参考官方说明,非常简单,这里就不重复了。
本文主要是讲你安装官方默认方法安装好之后,要怎么配置,以及上手使用。
![a152a4f4ca35287d84ea1e1f2c1ccfa2.png](https://i-blog.csdnimg.cn/blog_migrate/181a99cab29a63e36ca70cce806beab0.jpeg)
基础配置
默认postgresql 监听在127.0.0.1 的5432端口
我们要修改配置文件,让它监听到所有外部ip请求,
修改配置文件/etc/postgresql/13/main/postgresql.conf
在listen_addresses注释这一行下面,加一行配置
listen_addresses='*'
表示监听所有ip过来的请求。
如果你只想对内网提供访问,可以改成一个内网ip地址,比如 192.168.11.3
然后修改密码加密方式为:
password_encryption = scram-sha-256 # md5 or scram-sha-256
接下来修改 允许访问配置pg_hba.conf
打开配置文件 /etc/postgresql/13/main/pg_hba.conf
因为我的ip段是 192.168.*.*, 所以我加一行
host all all 192.168.0.0/16 scram-sha-256
数据库配置,访问授权都搞好了,接下来就重启服务吧
重启生效
systemctl restart postgresql
修改PostgreSQL数据库默认用户postgres的密码
PostgreSQL数据库创建一个postgres用户作为数据库的管理员,密码随机,所以需要修改密码,方式如下:
步骤一:登录PostgreSQL
sudo -u postgres psql
步骤二:修改登录PostgreSQL密码
ALTER USER postgres WITH PASSWORD 'postgres';
注:
密码postgres要用引号引起来,可以换成你想要设置的密码
命令最后有分号
然后我们看看密码是不是都用最新的加密算法加密了
SELECT rolname, rolpassword ~ '^SCRAM-SHA-256$' AS has_upgradedFROM pg_authidWHERE rolcanlogin;
步骤三:退出PostgreSQL客户端
q
修改linux系统postgres用户的密码
PostgreSQL会创建一个默认的linux用户postgres,修改该用户密码的方法如下:
步骤一:删除用户postgres的密码
sudo passwd -d postgres
步骤二:设置用户postgres的密码
sudo -u postgres passwd
系统提示输入新的密码
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
操作指南
运行上面的psql打开一个shell
数据库操作
建立数据库名为:family
CREATE DATABASE family;
列出所有数据库:
l
或者完整的命令参数
list
删除一个库 (高危操作,谨慎执行):
DROP DATABASE family;
连接并使用一个库:
c family
或者:
connect family
您可能会看到如下:
You are now connected to database "family" as user "postgres"
另外一个建库的命令 createdb:
createdb my_test_db
表操作
连接数据库之后,列出所有的表 :
dt
您可能会看到如下信息:
List of relations
Schema | Name | Type | Owner
--------+----------+-------+----------
public | daughter | table | postgres
public | mother | table | postgres
(2 rows)
上面是我已经建好了表,那么查看一个表的数据结构,执行命令:
d table_name
命令会打印表的结构
管理账号添加
添加账号,并赋予他们读写权限,是日常重要的操作,创建用户,命令是:
CREATE ROLE my_user WITH LOGIN PASSWORD 'my_password';
postgresl角色可以拥有一个或者多个数据库,你可以在建数据库的时候,把用户角色也建了
CREATE DATABASE my_database WITH OWNER my_user;
如果你要允许一个用户有建库,表的权限:
ALTER USER my_user CREATEDB;
当你处理完了,想要退出来:
q
导出数据库
导出数据备份,也是日常操作之一,
你可以用pg_dump导出数据,你需要设置PGPASSWORD密码到环境变量
unset HISTFILE
export PGPASSWORD=4c1d4f7591801abb
然后执行pg_dump命令导出数据到本地:
pg_dump -h dbhost.example -d dbname -U dbuser > backup_file
如果要把数据导回去,可以执行:
psql dbname < backup_file
获取帮助信息
获取帮助信息:
h
或者查看命令指南:
?
总结
到这里,你已经学会了如何快速上手postgresl了,你可以编写程序代码,访问数据库,也可以通过一些gui工具,访问数据库。