PostgreSQL17.x创建数据库及数据库信息查看命令

PostgreSQL17.x创建数据库及数据库信息查看命令

文章目录

  • PostgreSQL17.x创建数据库及数据库信息查看命令
  • 1.创建数据库
    • [1. 使用 SQL 命令创建数据库](#1. 使用 SQL 命令创建数据库)
    • [2. 创建数据库并指定字符集](#2. 创建数据库并指定字符集)
    • [3. 验证数据库是否创建成功](#3. 验证数据库是否创建成功)
    • [3. 远程连接](#3. 远程连接)
      • [1. 修改 PostgreSQL 配置文件](#1. 修改 PostgreSQL 配置文件)
      • [2. 修改客户端认证配置](#2. 修改客户端认证配置)
      • [4. 指定某个用户](#4. 指定某个用户)
      • [5. 指定某个网段可连接](#5. 指定某个网段可连接)
      • [6. 重启 PostgreSQL 服务](#6. 重启 PostgreSQL 服务)
  • [2. 查看数据库及表](#2. 查看数据库及表)
    • [1. 查看数据库信息](#1. 查看数据库信息)
    • [2. 查看表信息](#2. 查看表信息)
      • [1. 连接到 PostgreSQL 服务器](#1. 连接到 PostgreSQL 服务器)
      • [2. 切换数据库](#2. 切换数据库)
      • [3. 查看当前数据库中的所有表](#3. 查看当前数据库中的所有表)
      • [4. 查看特定表的结构](#4. 查看特定表的结构)
  • [3. 常用命令](#3. 常用命令)
  • [3. 常用命令](#3. 常用命令)

1.创建数据库

创建数据库前请确保您具有足够的权限。通常,只有超级用户或被授予了 CREATEDB 权限的用户才能创建数据库。

数据库名称必须遵循 PostgreSQL 的标识符命名规则,且不能与已存在的数据库名称重复。

创建数据库时,还可以指定一些额外的选项,如字符集、模板数据库等。例如可以指定使用 UTF8 字符集

1. 使用 SQL 命令创建数据库

已经连接到了 PostgreSQL 服务器,可以直接运行 CREATE DATABASE 命令来创建一个新的数据库。

sql 复制代码
CREATE DATABASE dbName;

2. 创建数据库并指定字符集

sql 复制代码
CREATE DATABASE mydatabase WITH ENCODING 'UTF8';

3. 验证数据库是否创建成功

创建数据库后,您可以使用 \l 命令列出所有数据库,检查新创建的数据库是否存在。

sql 复制代码
\l

3. 远程连接

要允许 PostgreSQL 用户从远程主机连接到数据库,需要进行几个配置步骤。以下是在 PostgreSQL 17 中配置远程连接的详细步骤:

1. 修改 PostgreSQL 配置文件

首先,需要编辑 PostgreSQL 的配置文件 postgresql.conf,以允许监听来自外部网络的连接。

  1. 找到 postgresql.conf 文件
  • Linux系统中,默认情况下这个文件位于 PostgreSQL 的数据目录中,通常是 /etc/postgresql/17/main//var/lib/pgsql/17/data/

  • Windows系统中,默认情况下这个文件位于 PostgreSQL 的数据目录中,如:D:\Programs\PostgreSQL\17\data\

  1. 编辑 postgresql.conf 文件
  • 使用文本编辑器打开 postgresql.conf 文件。
  • 找到 listen_addresses 配置项,并将其设置为 '*',表示允许从任何 IP 地址连接。例如:
shell 复制代码
listen_addresses = '*'

2. 修改客户端认证配置

接下来,需要编辑 pg_hba.conf 文件,以允许特定的用户从特定的 IP 地址连接到数据库。

  1. 找到 pg_hba.conf 文件

    • 这个文件通常也位于 PostgreSQL 的数据目录中,与 postgresql.conf 文件在同一位置。
  2. 编辑 pg_hba.conf 文件

    使用文本编辑器打开 pg_hba.conf 文件。

    添加或修改一行,允许特定的用户从特定的 IP 地址连接。例如,允许用户 john 从 IP 地址 192.168.1.100 连接:

    复制代码
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    host    all             john            192.168.1.100/32        md5

    解释:

    • TYPE: 连接类型,host 表示 TCP/IP 连接。
    • DATABASE: 允许连接的数据库名称,all 表示所有数据库。
    • USER: 允许连接的用户名。
    • ADDRESS: 允许连接的 IP 地址和子网掩码。192.168.1.100/32 表示单个 IP 地址,192.168.1.0/24 表示整个子网。
    • METHOD: 认证方法,md5 表示使用 MD5 加密的密码认证。

4. 指定某个用户

使用文本编辑器打开 pg_hba.conf 文件。

shell 复制代码
# TYPE  DATABASE        USER            ADDRESS                 METHOD
...
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             192.168.1.26/32            scram-sha-256
# IPv6 local connections:
....

5. 指定某个网段可连接

shell 复制代码
# TYPE  DATABASE        USER            ADDRESS                 METHOD
...
# IPv4 local connections:
host    all             all             127.0.0.1/32            scram-sha-256
host    all             all             192.168.1.0/24            scram-sha-256
# IPv6 local connections:
....

添加或修改一行,允许特定网段的主机连接。例如,允许用户 all(所有用户)192.168.1.0/24 网段的主机连接

  • 解释:
    • TYPE: 连接类型,host 表示 TCP/IP 连接。
    • DATABASE: 允许连接的数据库名称,all 表示所有数据库。
    • USER: 允许连接的用户名,all 表示所有用户。
    • ADDRESS: 允许连接的 IP 地址和子网掩码。192.168.1.0/32 表示整个 192.168.1.0192.168.1.255 的网段。
    • METHOD: 认证方法,scram-sha-256 表示使用 scram-sha-256加密的密码认证。

6. 重启 PostgreSQL 服务

修改配置文件后,需要重启 PostgreSQL 服务以使更改生效。

shell 复制代码
# Windows下先停止在启动
# 停止服务
net stop postgresql-x64-17
# 启动服务
net start postgresql-x64-17

2. 查看数据库及表

1. 查看数据库信息

shell 复制代码
\l

2. 查看表信息

在 PostgreSQL 17 中,使用 psql 命令行工具可以方便地切换数据库和查看表结构。以下是详细的步骤和命令:

1. 连接到 PostgreSQL 服务器

首先,使用 psql 命令连接到 PostgreSQL 服务器。假设您要以 john 用户连接到 localhost 上的 PostgreSQL 服务器:

复制代码
psql -h localhost -U john
  • -h localhost: 指定服务器地址,如果是本地连接,可以省略。
  • -U john: 指定连接的用户名。

连接成功后,您会看到 psql 提示符,类似于 john=#

2. 切换数据库

如果您已经连接到某个数据库,但需要切换到另一个数据库,可以使用 \c 命令。假设您要切换到 mydatabase 数据库:

复制代码
\c mydatabase

3. 查看当前数据库中的所有表

要查看当前数据库中的所有表,可以使用 \dt 命令:

复制代码
\dt

这个命令会列出当前数据库中的所有表。

shell 复制代码
# 切换到 syson-db数据库
postgres-# \c "syson-db"
您现在已经连接到数据库 "syson-db",用户 "postgres".
# 查看当前数据库下的表
syson-db-# \dt
                       关联列表
 架构模式 |          名称           |  类型  | 拥有者
----------+-------------------------+--------+--------
 public   | databasechangelog       | 数据表 | dbuser
 public   | databasechangeloglock   | 数据表 | dbuser
 public   | document                | 数据表 | dbuser
 public   | image                   | 数据表 | dbuser
 public   | nature                  | 数据表 | dbuser
 public   | project                 | 数据表 | dbuser
 public   | project_image           | 数据表 | dbuser
 public   | representation_content  | 数据表 | dbuser
 public   | representation_metadata | 数据表 | dbuser
 public   | semantic_data           | 数据表 | dbuser
 public   | semantic_data_domain    | 数据表 | dbuser
(11 行记录)

4. 查看特定表的结构

如果您想查看某个表的详细结构,可以使用 \d 命令加上表名。例如,查看 users 表的结构:

复制代码
\d users

3. 常用命令

1. 查看数据库

shell 复制代码
\l

2. 切换数据库

sql 复制代码
\c dbName

3.查看所有模式

shell 复制代码
\dn

4.查看所有函数

sql 复制代码
\df

想查看某个表的详细结构,可以使用 \d 命令加上表名。例如,查看 users 表的结构:

复制代码
\d users

3. 常用命令

1. 查看数据库

shell 复制代码
\l

2. 切换数据库

sql 复制代码
\c dbName

3.查看所有模式

shell 复制代码
\dn

4.查看所有函数

sql 复制代码
\df
相关推荐
数智化管理手记5 小时前
精益生产中的TPM管理是什么?一文破解设备零故障的密码
服务器·网络·数据库·低代码·制造·源代码管理·精益工程
翊谦6 小时前
Java Agent开发 Milvus 向量数据库安装
java·数据库·milvus
難釋懷7 小时前
OpenResty实现Redis查询
数据库·redis·openresty
别抢我的锅包肉7 小时前
【MySQL】第四节 - 多表查询、多表关系全解析
数据库·mysql·datagrip
Database_Cool_7 小时前
OpenClaw-Observability:基于 DuckDB 构建 OpenClaw 的全链路可观测体系
数据库·阿里云·ai
刘~浪地球7 小时前
Redis 从入门到精通(五):哈希操作详解
数据库·redis·哈希算法
zzh0818 小时前
MySQL高可用集群笔记
数据库·笔记·mysql
Shely20178 小时前
MySQL数据表管理
数据库·mysql
爬山算法8 小时前
MongoDB(80)如何在MongoDB中使用多文档事务?
数据库·python·mongodb
APguantou9 小时前
NCRE-三级数据库技术-第2章-需求分析
数据库·需求分析