ubuntu postgresql 安装

1.ubuntu postgresql 安装

在Ubuntu上安装PostgreSQL,你可以按照以下步骤进行:

使用apt包管理器安装

  1. 更新系统
    在安装任何软件之前,建议先更新你的操作系统。

sudo apt update
sudo apt upgrade
  1. 安装PostgreSQL
    使用apt包管理器来安装PostgreSQL。

sudo apt install postgresql

这个命令会安装PostgreSQL的服务器和客户端工具,以及任何必要的依赖项。
3. 配置PostgreSQL
安装完成后,PostgreSQL会自动运行,并且会创建一个名为"postgres"的系统用户和数据库。你可以使用以下命令来以postgres用户身份登录到PostgreSQL的命令行工具psql:

sudo -u postgres psql

在psql命令行中,你可以使用SQL命令来创建新用户、数据库等。

添加自定义用户和数据库

  1. 添加新用户
    使用createuser命令来添加新的PostgreSQL用户。例如,要创建一个名为"myuser"的用户,并赋予其创建数据库和超级用户权限,可以执行:

sudo -u postgres createuser -dRS myuser

在提示时,输入新用户的密码。
2. 创建新数据库
在psql命令行中,你可以使用SQL命令来创建新数据库。例如,要创建一个名为"mydb"的数据库,并指定其所有者为"myuser",可以执行:

CREATE DATABASE mydb OWNER myuser;
  1. 退出psql命令行
    输入\q并回车来退出psql命令行。

注意事项

  • 如果你使用的是Ubuntu的旧版本,或者PostgreSQL的版本在你的apt仓库中不可用,你可能需要从PostgreSQL的官方网站下载源代码并手动编译安装。但通常,使用apt包管理器是更简便和推荐的方法。
  • 安装完成后,PostgreSQL的配置文件通常位于/etc/postgresql/<version>/main/目录下,其中<version>是你安装的PostgreSQL的版本号。你可以根据需要编辑这些配置文件来更改PostgreSQL的设置。
  • 默认情况下,PostgreSQL服务器会在安装后自动启动,并作为系统服务运行。你可以使用systemctl命令来管理PostgreSQL服务的状态。例如,要停止PostgreSQL服务,可以执行sudo systemctl stop postgresql

2.ubuntu 查看 postgresql 用户 

在 Ubuntu 上查看 PostgreSQL 的用户(角色),你可以使用 psql 命令行工具连接到 PostgreSQL 数据库,并执行 SQL 查询来查看所有存在的用户和他们的权限。

以下是如何查看 PostgreSQL 中所有用户的步骤:

  1. 以 postgres 用户身份登录

    首先,你需要以 postgres 系统用户身份登录到 shell。这可以通过以下命令完成(可能需要输入你的用户密码):

    sudo -u postgres -i

    或者简单地使用:

    sudo -u postgres psql postgres

    这将直接以 postgres 数据库为上下文启动 psql

  2. 在 psql 中查看所有用户(角色)

    在 psql 提示符下,执行以下 SQL 命令来查看所有用户和他们的权限:

    \du

    或者,如果你想要更详细的输出,包括成员资格和复制权限,你可以使用:

    SELECT rolname, rolsuper, rolcreaterole, rolcreatedb, rolinherit, rolreplication
    FROM pg_roles;

    这将列出所有角色(在 PostgreSQL 中,用户和角色是相同的概念,只是角色可以没有登录权限),以及他们的属性,如是否是超级用户(rolsuper)、是否可以创建角色(rolcreaterole)、是否可以创建数据库(rolcreatedb)等。

  3. 退出 psql

    在 psql 提示符下,输入 \q 并按回车键退出。

  4. 退出 postgres 用户 shell

    如果你首先以 postgres 用户身份登录到了 shell,你现在可以输入 exit 或使用快捷键 Ctrl + D 来退出。

注意:确保你的 PostgreSQL 服务正在运行,并且你有足够的权限来查看和查询数据库。如果你遇到任何问题或错误消息,请检查你的 PostgreSQL 日志文件(通常位于 /var/log/postgresql/ 目录下)以获取更多信息。

3.postgres 查看全部数据库 

在 PostgreSQL 中,要查看所有的数据库,你可以使用 psql 命令行工具并执行一个特定的命令。以下是查看所有数据库的步骤:

  1. 打开终端
    首先,打开你的终端或命令行界面。

  2. 连接到 PostgreSQL
    使用 psql 连接到 PostgreSQL。你可以直接连接到默认数据库(通常是 postgres),或者如果你知道其他数据库的名称,也可以连接到那个数据库。但是为了查看所有数据库,我们只需要连接到任何数据库即可。

psql -U postgres

在这里,-U postgres 表示以 postgres 用户身份连接。如果这是第一次以该用户身份连接到 PostgreSQL,或者你的用户密码已更改,你可能需要输入密码。

  1. 列出所有数据库
    一旦你进入了 psql 提示符,可以输入以下命令来列出所有数据库:
\l

或者,你也可以使用 SQL 查询来达到相同的效果:

SELECT datname FROM pg_database;

这个查询将从 pg_database 系统目录中检索所有数据库的名称。

  1. 退出 psql
    要退出 psql 提示符,输入 \q 然后按回车键。

如果你希望从命令行(而不是进入 psql)直接获取数据库列表,你可以使用 pg_lsclusters(如果你安装了 postgresql-common 包)或者结合使用 psql 和 bash 脚本。但是,通常 psql 的 \l 命令是最简单和最直接的方法来查看所有数据库。

4.sudo -u postgres -i 和 psql -U postgres 啥差别 

sudo -u postgres -i 和 psql -U postgres 这两个命令在 Ubuntu 或其他 Linux 系统中用于与 PostgreSQL 数据库交互,但它们的作用和用途有所不同。

sudo -u postgres -i

这个命令使用 sudo 来以 postgres 用户的身份启动一个交互式 shell。-u postgres 指定了要使用哪个用户身份,而 -i 选项告诉 sudo 仿真目标用户的登录 shell。当使用这个命令后,你会被放置在一个新的 shell 中,这个 shell 是以 postgres 用户的身份运行的。在这个 shell 中,你可以执行任何 postgres 用户有权限执行的命令,包括 psql 或其他 PostgreSQL 相关的命令。

psql -U postgres

这个命令直接启动 psql 命令行工具,并使用 -U postgres 选项指定以 postgres 用户的身份连接到 PostgreSQL 数据库。psql 是 PostgreSQL 的交互式终端,允许你执行 SQL 命令、管理数据库和表等。当你运行这个命令时,它可能会要求你输入 postgres 用户的密码(如果设置了密码的话)。

差别

  • 用途sudo -u postgres -i 用于以 postgres 用户的身份启动一个全新的 shell,而 psql -U postgres 用于直接连接到 PostgreSQL 数据库。
  • 环境:使用 sudo -u postgres -i 后,你处于一个新的 shell 环境中,可以执行任何命令。而 psql -U postgres 只启动 psql 工具,并让你在数据库环境中工作。
  • 密码提示:如果你在使用 psql -U postgres 时没有提供密码(通过 -W 选项或环境变量),并且 PostgreSQL 设置了密码验证,则 psql 会在连接时提示你输入密码。而 sudo -u postgres -i 可能会要求你输入你的用户密码(如果你有 sudo 权限的话),但不会直接要求 postgres 用户的密码(除非你的 sudo 配置要求这样做)。
  • 连接数据库:如果你只想连接到 PostgreSQL 数据库并执行 SQL 命令,那么 psql -U postgres 是更直接的选择。但如果你需要执行其他与 postgres 用户身份相关的任务(不仅仅是数据库任务),那么 sudo -u postgres -i 可能会更合适。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值