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
相关推荐
qq_5298353525 分钟前
对计算机中缓存的理解和使用Redis作为缓存
数据库·redis·缓存
月光水岸New3 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6753 小时前
数据库基础1
数据库
我爱松子鱼3 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo3 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser4 小时前
【SQL】多表查询案例
数据库·sql
Galeoto4 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)5 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231115 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql
喝醉酒的小白5 小时前
PostgreSQL:更新字段慢
数据库·postgresql