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
相关推荐
芭拉拉小魔仙3 分钟前
浏览器数据存储方法深度剖析:LocalStorage、IndexedDB、Cookies、OPFS 与 WASM - SQLite
数据库·sqlite·wasm
老王笔记37 分钟前
MySQL如何区分幻读和不可重复读
数据库·mysql
不爱学习的啊Biao38 分钟前
【08】MySQL复杂查询:子查询语句详解与示例
数据库·mysql·子查询
st_331 小时前
Junit5 单元测试入门
数据库·单元测试·log4j
s***g5401 小时前
MySQL-操作数据库备份与恢复
数据库·mysql
CQU_JIAKE1 小时前
11.5【算法】6-1 表彰优秀学生(多态)
数据库
Elastic 中国社区官方博客2 小时前
使用数据层进行数据生命周期管理
大数据·数据库·elasticsearch·搜索引擎·全文检索·时序数据库
我爱李星璇2 小时前
Spring Boot项目的创建
java·数据库·spring boot
锵锵锵锵~蒋2 小时前
实时数据开发|Flink异步IO--提升性能和吞吐量
jvm·数据库·flink·实时数据开发
小麦项目管理指南3 小时前
工程企业需要什么样的财务软件?
大数据·数据库·信息可视化·项目管理