PostgreSQL是一个高度稳定可靠的数据库管理系统,已经使用了20多年。 它得到了一个活跃的社区的支持,他们为它的发展贡献了自己的时间,从而提高了弹性、完整性和正确性。 PostgreSQL 为许多 Web 应用程序提供支持,包括来自 Google Earth Engine 地理空间数据存储的用于分析软件的应用程序,例如使用 R/Rapidminer 包中创建的机器学习算法构建的预测建模工具集
在以下教程中,您将学习如何使用命令行终端在 Ubuntu 22.04 LTS Jammy Jellyfish 上安装 PostgreSQL,以及一些基本的配置和设置技巧。
目录
更新Ubuntu
首先,使用以下命令更新您的系统,以确保所有软件包都是最新的,以避免冲突。
sudo apt update && sudo apt upgrade -y
安装所需的软件包
必须安装以下软件包以帮助安装数据库软件。
sudo apt install software-properties-common apt-transport-https wget -y
导入 PostgreSQL 存储库
首先,您需要导入 PostgreSQL GPG 密钥来验证安装包的真实性。
sudo wget -O- https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg
接下来,您可以根据所需的安装导入稳定或测试存储库。 对于生产使用,请使用稳定的存储库,因为您直接从 PostgreSQL 存储库安装它通常会快速更新。 测试是为了测试,有时可能落后也可能领先,不适合生产。
导入 PostgreSQL 稳定版(推荐)
echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ jammy-pgdg main | sudo tee /etc/apt/sources.list.d/postgresql.list
导入 PostgreSQL 测试
echo deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ jammy-pgdg-testing main | sudo tee /etc/apt/sources.list.d/postgresql-testing.list
安装PostgreSQL
现在您已经导入了 PostgreSQL 的稳定或测试存储库,您需要使用以下命令更新存储库源列表以反映新增内容。
sudo apt-get update
现在继续安装 PostgresSQL,如下所示。
sudo apt install postgresql-client postgresql -y
接下来,使用以下命令验证状态以确保软件安装和激活没有错误。
systemctl status postgresql
输出示例:
PostgreSQL 的服务命令
PostgreSQL 数据库服务器作为服务运行在名称下 “PostgreSQL,” 可以通过以下命令示例使用 systemd 进行管理。
停止 PostgreSQL 服务器
sudo systemctl stop postgresql
启动 PostgreSQL 服务器
sudo systemctl start postgresql
重启 PostgreSQL 服务器
sudo systemctl restart postgresql
重新加载 PostgreSQL 服务器
sudo systemctl reload postgresql
检查 PostgreSQL 状态
systemctl status postgresql
配置 PostgreSQL 服务器
切换到 Postgres 帐户
在继续之前,请注意只有具有创建角色权限的超级用户和角色才能在 Postgres 中创建新角色。 在安装过程中创建了一个名为 Postgres 的用户帐户,与默认 Postgres 角色相关联。
要与帐户互动,您可以执行以下命令:
sudo -i -u postgres
通过输入上述内容,您可以通过键入立即访问 PostgreSQL 提示符 “psql”.
psql
接下来,您会注意到终端已更改为 “postgres=#” 现在在终端命令行中。 这意味着您已成功连接到数据库。
要退出 Postgres 数据库,您可以通过键入以下内容来执行此操作:
exit
切换 Postgres 帐户的替代方法
在不更改用户帐户的情况下与 Postgres 数据库交互的另一种方法是使用 sudo 命令直接连接。 您可以通过键入以下内容来执行此操作:
sudo -u postgres psql
这是使用更多的理想选择,因为它可以节省直接记录您的时间,而无需执行额外的终端 bash 命令。
就像第一个选项一样,您可以通过键入以下退出终端来退出。
exit
创建用户和数据库
现在,您可以根据需要创建用户角色。 只有超级用户和角色 “创造角色” 权限可以创建新角色。
创建一个新用户; 键入以下内容。
sudo su - postgres -c "createuser <name>"
现在您可以为您创建的新用户创建一个 PostgreSQL 数据库:
sudo su - postgres -c "createdb <namedb>"
最后,您需要切换到超级用户 Postgres 帐户以授予对新数据库的权限。
连接到 Postgres 超级用户帐户
sudo -u postgres psql
授予访问权限到
GRANT ALL PRIVILEGES ON DATABASE <usernamedb> TO <name>;
例如:
完成后,要退出,请键入以下内容
exit
配置UFW防火墙
您将需要创建一个 UFW 防火墙规则以允许 PostgreSQL 在其默认端口上进行通信 5432, 如果您打算使用除 localhost 之外的任何其他内容,则这是必需的。
首先,确保启用了 UFW。
sudo ufw enable
这可以通过键入以下命令来完成。
子网范围:
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 5432
个人IP:
sudo ufw allow proto tcp from 192.168.1.0 to any port 5432
有关使用 Ubuntu 22.04 配置 UFW 的更多信息,请访问我的教程“如何在 Ubuntu 22.04 LTS 上安装和配置 UFW 防火墙设立的区域办事处外,我们在美国也开设了办事处,以便我们为当地客户提供更多的支持。“
远程访问 PostgreSQL
如果您需要对 PostgreSQL 的默认访问,这可以通过将默认侦听 (127.0.0.1) 的本地接口更改为配置文件中的 IP、子网甚至所有接口来快速完成。
请记住确保 UFW 已正确设置并且不会按照上一节阻止远程访问。
首先,确定您正在使用 ls 命令的 Postgresql 版本。
ls /etc/postgresql/
本教程安装了最新版本之一,即 14。有了这个,打开 “postgresql.conf” 文件使用 nano 文本编辑器。
sudo nano /etc/postgresql/14/main/postgresql.conf
现在向下滚动直到找到 “连接设置” 并改变 (listen_addresses = 'localhost') 到地址。 大多数人会选择监听所有接口,尤其是在需要通过更改连接到 PostgreSQL 数据库的多个服务器中运行时 本地 至 (*).
例如:
现在保存文件 (CTRL+O), 出口 (CTRL+X), 并重新启动您的 PostgreSQL 实例。
sudo systemctl restart postgresql
要检查您所做的更改是否有效,用户可以使用 Ubuntu 内置的 ss 实用程序来执行此操作。
ss -nlt | grep 5432
输出示例:
为了进一步定制和保护 PostgreSQL,您可以通过编辑 “pg_hba.conf” 文件使用 nano 文本编辑器。
sudo nano /etc/postgresql/14/main/pg_hba.conf
从这一点开始,您可以设置各种选项,例如更改 “所有” 到特定的用户名和数据库以及地址和身份验证方法。
评论和结论
如果您正在寻找一个功能强大的开源数据库系统,甚至可以处理最繁重的负载,那么 PostgreSQL 绝对值得您考虑。 凭借其广泛的功能和稳健性,难怪开发人员将其作为企业应用程序的首选。
有关使用 PostgreSQL 的更多信息,请访问官方 文件.