Linux下postgresql数据库的安装和加载实例数据库教程

安装数据库

直接切到root用户执行yum安装

yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

上面这条命令使用 yum 包管理器安装 PostgreSQL 的官方 YUM 仓库配置文件。

yum install -y postgresql12-server

上面这条命令从刚刚添加的 PostgreSQL 官方 YUM 仓库中安装 PostgreSQL 12 的服务器软件包。

安装完成后会显示已安装如下图:

/usr/pgsql-12/bin/postgresql-12-setup initdb

上面这条命令初始化 PostgreSQL 数据库。initdb 是一个用于创建新的 PostgreSQL 数据库集群的命令。这个命令会创建一个新的数据库目录,并设置基础的系统目录和文件。

设置数据库的启动

设置开机自启

systemctl enable postgresql-12

启动数据库

systemctl start postgresql-12

查看数据库状态

systemctl status postgresql-12

如图中  active 表示启动成功

安装完成之后,postgresql的主要目录如下:

#程序执行目录:          /usr/pgsql-12/bin/

PostgreSQL 的二进制文件,如 postgres服务器进程psql命令工具 等

#数据库目录:             /var/lib/pgsql/12/data/

这里包含了所有的数据库文件、配置文件、日志等。

通过 psql 连接到 PostgreSQL 数据库服务器

在 PostgreSQL 中,用户账号称为角色

安装 PostgreSQL 时,安装过程会创建一个名为postgres的与默认postgres角色关联的用户账号。

在大多数 Linux 发行版中,系统用户和服务的账户通常不会在 /home/ 目录下拥有个人主目录。而postgres 用户是一个系统用户,主要用于运行 PostgreSQL 数据库服务,而不是一个交互式用户,所以也没有个人主目录。但它仍然有一个与之关联的用户ID(UID)和组ID(GID),这些ID用于在系统中标识该用户和属于它的进程。PostgreSQL 的数据文件和配置文件通常位于特定的系统目录下。注意:不需要(也不应该)尝试在 /home/ 目录下为 postgres 用户创建一个主目录

要使用该postgres角色连接到 PostgreSQL,可以通过以下命令切换到服务器上的postgres账号:

当前是root用户时这样:

su - postgres

注意: su - postgres 而不是 su postgres。在 su 命令后面加上 - 是很重要的,因为它会启动一个登录 shell,并加载 postgres 用户的环境变量和配置文件。如果没有 - ,仍然会切换到 postgres 用户,但是不会加载 postgres 用户的 shell 配置文件(比如 .bash_profile、.bashrc 等),这可能会导致一些环境变量没有正确设置,从而影响到 postgres 用户的一些操作。

普通用户的话是这样:

sudo -i -u postgres

注意:这个用户必须要有sudo权限。可能还会要求输入当前用户密码,输入就行。

  • -i:这个选项告诉 sudo 初始化一个登录 shell。当使用这个选项时,它会改变当前用户的环境变量为用户 postgres 的环境变量,并启动一个新的 shell 会话。
  • -u postgres:这个选项指定要以哪个用户的身份执行后续的命令。在这个例子中,后续的命令将以 postgres 用户的身份执行。postgres 是 PostgreSQL 数据库系统的默认系统用户,用于运行 PostgreSQL 服务进程并管理相关的数据库文件和目录。

当成功切换postgres用户是会出现以下:

-bash-4.2$ 是 postgres 用户的 shell 提示符,表明我们现在已经成功切换到 postgres 用户,并且正在使用 Bash shell 版本 4.2。

之后我们可以通过psql命令来访问PostgresSQL:

psql

如图我们能看到像这样的 postgres 提示符:

postgres=#                   从这里,我们可以与 PostgreSQL 进行交互

接下来我们进行一些简单的退出命令和密码修改命令:

要退出 PostgreSQL 提示符,请运行以下命令:

\q  或者  exit

上面的命令将使我们返回到 postgres  Linux 命令提示符。

要返回常规系统用户,请执行如下命令:

exit

如果要修改账号密码,在sql命令行模式中,可以用如下命令:

ALTER USER postgres WITH PASSWORD '123456';

这里我们将密码改为123456,ALTER ROLE 表示修改成功。分号是结束语句。

注意:sql常用语句一定要加分号  ;

加载示例数据库

使用curl工具下载示例数据库:

curl -O https://www.rockdata.net/files/dvdrental.zip

解压 dvdrental.zip 文件,得到 dvdrental.tar 文件:

unzip dvdrental.zip

解压成功是下图这样的效果:

如果执行解压命令出现下图的提示,表示机子里没有装 unzip。切换回root用户去用yum 安装一个unzip  命令:yum -y install unzip

解压后,我们使用psql工具访问 PostgreSQL,执行以下命令创建数据库;记得加分号

create database dvdrental;

 如果执行成功,我们呢不会看到任何输出,但我们可以通过以下命令列出所有数据库来确认它已经被创建: 注意不是1 是小写的L

\l

能看到第一个数据库就是我们刚才创建的。接着我们使用\q命令退出postgres;然后输入以下指令使用pg_restore工具恢复dvdrental数据库:这行命令尝试从 dvdrental.tar 文件恢复数据到名为 dvdrental 的数据库。

pg_restore --dbname=dvdrental --verbose dvdrental.tar

恢复完成后,我们使用psql命令再次访问 PostgreSQL 数据库服务器,并执行以下命令切换到dvdental数据库;

\c dvdrental

现在我们已经连接到dvdrental数据库

最后输入以下命令即可获取film表中的影片数量:

dvdrental=# select count(*) from film;

  • select 是 SQL 语言中用于选择数据的关键字。
  • count(*) 是一个聚合函数,用于计算查询结果集中的行数。星号(*)表示计算所有行,不考虑行中的具体数据。
  • from film 指示 SQL 从 film 表中选择数据

这样我们就完成了postgresql的安装以及示例数据库的加载操作了。

  • 22
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值