zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

53 openEuler搭建PostgreSQL数据库服务器-管理数据库

数据库postgresql服务器 管理 搭建 53 openeuler
2023-09-14 09:09:11 时间

53 openEuler搭建PostgreSQL数据库服务器-管理数据库

53.1 创建数据库

可以使用CREATE DATABASE语句或createdb来创建角色。createrdb是对CREATE DATABASE命令的封装,需要在shell界面执行,而不是在数据库界面。

CREATE DATABASE databasename;
createdb databasename

其中:databasename为数据库名。

要使用这条命令,必须拥有CREATEDB权限。

创建数据库示例

创建一个数据库testdb1。

postgres=# CREATE DATABASE testdb1;
CREATE DATABASE
postgres=# 

53.2 选择数据库

可以使用\c语句来选择数据库。

\c databasename;

其中:databasename为数据库名称。

选择数据库示例

选择testdb1数据库。

postgres=# \c testdb1;
您现在已经连接到数据库 "testdb1",用户 "postgres".
testdb1=# 

53.3 查看数据库

可以使用\l语句来查看数据库。

\l;

查看数据库示例

查看所有数据库。

postgres=# \l
                                     数据库列表
   名称    |  拥有者  | 字元编码 |  校对规则   |    Ctype    |       存取权限        
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =Tc/postgres         +
           |          |          |             |             | postgres=CTc/postgres+
           |          |          |             |             | roletest4=C/postgres
 template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 testdb1   | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
(4 行记录)

postgres=# 

53.4 删除数据库

可以使用DROP DATABASE语句或dropdb来删除数据库。dropdb是对DROP DATABASE命令的封装,需要在shell界面执行,而不是在数据库界面。

image-20221222104202894 注意:
删除数据库要谨慎操作,一旦删除,数据库中的所有表和数据都会删除。

DROP DATABASE databasename;
dropdb databasename

其中:databasename为数据库名称。

DROP DATABASE会删除数据库的系统目录项并且删除包含数据的文件目录。

DROP DATABASE只能由超级管理员或数据库拥有者执行。

删除数据库示例

删除testdb1数据库。

postgres=# DROP DATABASE testdb1;
DROP DATABASE
postgres=# 

53.5 备份数据库

可以使用pg_dump命令备份数据库,将数据库转储到一个脚本文件或其他归档文件中。

pg_dump [option]... [databasename] > outfile

其中:

  • databasename:数据库名称。如果没有声明这个参数,那么使用环境变量 PGDATABASE 。如果那个环境变量也没声明,那么使用发起连接的用户名。
  • outfile:数据库备份的文件。
  • option:pg_dump命令参数选项,多个参数之间可以使用空格分隔。常用的pg_dump命令参数选项如下:
    • -f,–file= filename :指输出到指定的文件。如果忽略,则使用标准输出。
    • -d,–dbname= databasename :指定转储的数据库。
    • -h,–host= hostname :指定主机名。
    • -p,–port= portnumber :指定端口。
    • -U,–username= username :指定连接的用户名。
    • -W,–password:强制口令提示(自动)。

备份数据库示例

备份主机为127.0.0.1,端口为5432,postgres用户下的testdb2数据库到testdb2.sql中。

[postgres@superman-21 ~]$ pg_dump -h 127.0.0.1 -p 5432 -U postgres -W testdb2 > testdb2.sql
口令: 
[postgres@superman-21 ~]$

53.6 恢复数据库

可以使用psql命令恢复数据库。

psql [option]... [databasename [username]] < infile

其中:

  • databasename:数据库名称。如果没有声明这个参数,那么使用环境变量 PGDATABASE 。如果那个环境变量也没声明,那么使用发起连接的用户名。
  • username:用户名。
  • infile:pg_dump命令中的outfile参数。
  • option:psql命令参数选项,多个参数之间可以使用空格分隔。常用的psql命令参数选项如下:
    • -f,–file=filename:指输出到指定的文件。如果忽略,则使用标准输出。
    • -d,–dbname=databasename:指定转储的数据库。
    • -h,–host=hostname:指定主机名。
    • -p,–port=portnumber:指定端口。
    • -U,–username=username:指定连接的用户名。
    • -W,–password:强制口令提示(自动)。

psql命令不会自动创建databasename数据库,所以在执行psql恢复数据库之前需要先创建databasename数据库。

恢复数据库示例

将testdb2.sql脚本文件导入到主机为127.0.0.1,端口为5432,postgres用户下newdb数据库中。

[postgres@superman-21 ~]$ createdb newdb
[postgres@superman-21 ~]$ 
[postgres@superman-21 ~]$ psql -h 127.0.0.1 -p 5432 -U postgres -W -d newdb < testdb2.sql
口令:
SET
SET
SET
SET
SET
 set_config 
------------
 
(1 行记录)

SET
SET
SET
SET
SET
SET
CREATE TABLE
ALTER TABLE
CREATE TABLE
ALTER TABLE
COPY 0
COPY 0
[postgres@superman-21 ~]$ 

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

在这里插入图片描述