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
,以允许监听来自外部网络的连接。
- 找到
postgresql.conf
文件:
-
Linux系统中,默认情况下这个文件位于 PostgreSQL 的数据目录中,通常是
/etc/postgresql/17/main/
或/var/lib/pgsql/17/data/
-
Windows系统中,默认情况下这个文件位于 PostgreSQL 的数据目录中,如:
D:\Programs\PostgreSQL\17\data\
- 编辑
postgresql.conf
文件:
- 使用文本编辑器打开
postgresql.conf
文件。 - 找到
listen_addresses
配置项,并将其设置为'*'
,表示允许从任何 IP 地址连接。例如:
shell
listen_addresses = '*'
2. 修改客户端认证配置
接下来,需要编辑 pg_hba.conf
文件,以允许特定的用户从特定的 IP 地址连接到数据库。
-
找到
pg_hba.conf
文件:- 这个文件通常也位于 PostgreSQL 的数据目录中,与
postgresql.conf
文件在同一位置。
- 这个文件通常也位于 PostgreSQL 的数据目录中,与
-
编辑
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.0
到192.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