文章目录
- 53 openEuler搭建PostgreSQL数据库服务器-管理数据库
- 53.1 创建数据库
- 创建数据库示例
- 53.2 选择数据库
- 选择数据库示例
- 53.3 查看数据库
- 查看数据库示例
- 53.4 删除数据库
- 删除数据库示例
- 53.5 备份数据库
- 备份数据库示例
- 53.6 恢复数据库
- 恢复数据库示例
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界面执行,而不是在数据库界面。
注意:
删除数据库要谨慎操作,一旦删除,数据库中的所有表和数据都会删除。
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 ~]$
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!