PostgreSQL 快速上手

 

简介

PostgreSQL 是最强大的开源数据库软件,日益被小公司,大公司青睐,应用非常广泛,市场空间非常大。开源免费,功能强大,稳定快速是它的主要特性优点。

本教程讲解如何快速配置搭建postgresql数据库,基于最新的postgresql 13编写,适用于windows, linux, mac osx. 作者是在ubuntu 20.10完成测试编写文档。安装请参考官方说明,非常简单,这里就不重复了。

本文主要是讲你安装官方默认方法安装好之后,要怎么配置,以及上手使用。

 

基础配置

默认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_upgraded
FROM pg_authid
WHERE 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工具,访问数据库。

分类: Linux/Unix 标签: 数据库 PostgreSQL 发布于: 2020-12-03 11:04:52, 点击数: