1.ubuntu postgresql 安装
在Ubuntu上安装PostgreSQL,你可以按照以下步骤进行:
使用apt包管理器安装
-
更新系统:
在安装任何软件之前,建议先更新你的操作系统。
sudo apt update | |
sudo apt upgrade |
-
安装PostgreSQL:
使用apt包管理器来安装PostgreSQL。
sudo apt install postgresql |
这个命令会安装PostgreSQL的服务器和客户端工具,以及任何必要的依赖项。
3. 配置PostgreSQL:
安装完成后,PostgreSQL会自动运行,并且会创建一个名为"postgres"的系统用户和数据库。你可以使用以下命令来以postgres用户身份登录到PostgreSQL的命令行工具psql:
sudo -u postgres psql |
在psql命令行中,你可以使用SQL命令来创建新用户、数据库等。
添加自定义用户和数据库
-
添加新用户:
使用createuser命令来添加新的PostgreSQL用户。例如,要创建一个名为"myuser"的用户,并赋予其创建数据库和超级用户权限,可以执行:
sudo -u postgres createuser -dRS myuser |
在提示时,输入新用户的密码。
2. 创建新数据库:
在psql命令行中,你可以使用SQL命令来创建新数据库。例如,要创建一个名为"mydb"的数据库,并指定其所有者为"myuser",可以执行:
CREATE DATABASE mydb OWNER myuser; |
- 退出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 中所有用户的步骤:
-
以 postgres 用户身份登录:
首先,你需要以
postgres系统用户身份登录到 shell。这可以通过以下命令完成(可能需要输入你的用户密码):sudo -u postgres -i或者简单地使用:
sudo -u postgres psql postgres这将直接以
postgres数据库为上下文启动psql。 -
在 psql 中查看所有用户(角色):
在
psql提示符下,执行以下 SQL 命令来查看所有用户和他们的权限:\du或者,如果你想要更详细的输出,包括成员资格和复制权限,你可以使用:
SELECT rolname, rolsuper, rolcreaterole, rolcreatedb, rolinherit, rolreplicationFROM pg_roles;这将列出所有角色(在 PostgreSQL 中,用户和角色是相同的概念,只是角色可以没有登录权限),以及他们的属性,如是否是超级用户(
rolsuper)、是否可以创建角色(rolcreaterole)、是否可以创建数据库(rolcreatedb)等。 -
退出 psql:
在
psql提示符下,输入\q并按回车键退出。 -
退出 postgres 用户 shell:
如果你首先以
postgres用户身份登录到了 shell,你现在可以输入exit或使用快捷键Ctrl + D来退出。
注意:确保你的 PostgreSQL 服务正在运行,并且你有足够的权限来查看和查询数据库。如果你遇到任何问题或错误消息,请检查你的 PostgreSQL 日志文件(通常位于 /var/log/postgresql/ 目录下)以获取更多信息。
3.postgres 查看全部数据库
在 PostgreSQL 中,要查看所有的数据库,你可以使用 psql 命令行工具并执行一个特定的命令。以下是查看所有数据库的步骤:
-
打开终端:
首先,打开你的终端或命令行界面。 -
连接到 PostgreSQL:
使用psql连接到 PostgreSQL。你可以直接连接到默认数据库(通常是postgres),或者如果你知道其他数据库的名称,也可以连接到那个数据库。但是为了查看所有数据库,我们只需要连接到任何数据库即可。
psql -U postgres |
在这里,-U postgres 表示以 postgres 用户身份连接。如果这是第一次以该用户身份连接到 PostgreSQL,或者你的用户密码已更改,你可能需要输入密码。
- 列出所有数据库:
一旦你进入了psql提示符,可以输入以下命令来列出所有数据库:
\l |
或者,你也可以使用 SQL 查询来达到相同的效果:
SELECT datname FROM pg_database; |
这个查询将从 pg_database 系统目录中检索所有数据库的名称。
- 退出 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可能会更合适。
2320

被折叠的 条评论
为什么被折叠?



