Ubuntu安装postgresql14

Ubuntu安装postgresql14

PostgreSQL 标榜自己是世界上最先进的开源数据库,属于关系型数据库管理系统 (ORDBMS), 是以加州大学计算机系开发的 POSTGRES,4.2 版本为基础的对象关系型数据库管理系统, 最初是 1985 年在加利福尼亚大学伯克利分校开发的,作为 Ingres 数据库的后继。

相对于 Postgres MySQL 更简单, 所以有着更高的流行度, 在技术资料,以及技术组件支持上,支持的也更完善一些, 但不意味着它并不是不能替代的, 于笔者而言, MYSQL 更像用于中小企业、个人的一款数据库工具, 因为会的人多, 文档资料比较完善,所以入手难度低。但这些并不意味着 MYSQL 是最好的。

MySQL 适用的场景
MySQL 适用于简单的应用场景,如电子商务、博客、网站等, 大中小型系统均可以使用 MySQL, 它最高支持千万级别到数亿级别的数据量, 但是在高性能要求的情况下, 比如较快的响应和较高的吞吐量的时候, MySQL 的性能稍微捉襟见肘, 另外,在查询条件比较复杂、业务吞吐量要求不高,响应时长无要求,的时候,可以选择 MySQL,

Postgres SQL适用的场景
总的来说, Postgre SQL 更适合复杂的数据结构、高级应用和大规模数据集, 当然如果数据规模比较小, 也可以选择 Postgres SQL, 无论是什么场景,如果你想用 Postgres SQL, 总可以找到对应的解决方法, 有且仅有, 在查询条件比较复杂,的时候不太适用, 因为根据我们实际线上的业务表现是 Postgre SQL 可能会选错索引。

查询安装包

1
apt -search postgresql-14

安装postgresql-14

1
apt install postgresql-14

安装成功后, 会自动创建一个数据库用户 postgres

修改数据库存储位置(可选)

停止PostgreSQL

1
systemctl stop postgresql

拷贝原来的数据路径到新的路径下

1
cp -rf /var/lib/postgresql/14/main /app/postgresql/

设置用户和权限

1
2
chown -R postgres:postgres /app/postgresql/
chmod 700 /app/postgresql/

将配置文件的数据存储路径改成新的

1
2
vim /etc/postgresql/14/main/postgresql.conf
data_directory='/app/postgresql/'

再启动即可

1
systemctl start postgresql

查看当前数据目录

1
2
3
4
5
6
7
8
psql -U postgres

postgres=# show data_directory;
data_directory
-----------------------------
/var/lib/postgresql/14/main
(1 row)

修改数据库密码

1
2
3
4
5
6
7
8
9
10
# 登录postgres用户
su - postgres
# 登录到数据库中
psql

# 或者直接以root用户登录
psql -U postgres

# 修改密码
alter user postgres with password 'xxxxxx';

配置远程访问

PostgreSQL 通过一个名为角色的概念支持多种客户端身份验证方法。默认的身份验证方法是身份验证,它将 Postgres 角色与 Unix 系统帐户关联起来。所有受支持的身份验证方法有:

  • Ident – 仅支持通过 TCP/IP 连接。它通过可选的用户名映射获取客户端系统用户名。
  • 密码 – 角色使用密码进行连接。
  • Peer – 与 ident 类似,但仅支持本地连接。
  • 信任 – 只要满足 pg_hba.conf 中定义的条件,就允许角色进行连接。

为了远程访问我们的数据库服务器实例,我们应该在文件 /etc/postgresql/14/main/pg_hba.conf 中进行更改。

通过运行以下命令允许在 PostgreSQL 服务器上进行密码身份验证。

1
sudo sed -i '/^host/s/ident/md5/' /etc/postgresql/14/main/pg_hba.conf

接下来是将识别方法从对等更改为信任,如下所示。

1
sudo sed -i '/^local/s/peer/trust/' /etc/postgresql/14/main/pg_hba.conf

要允许从任何地方访问实例,请编辑命令如下:

1
sudo vim /etc/postgresql/14/main/pg_hba.conf

在该文件中,添加以下行。

1
2
3
# IPv4 local connections:
host all all 0.0.0.0/0 md5

现在,通过如下编辑 /etc/postgresql/14/main/postgresql.conf 中的 conf 文件来确保服务正在侦听 *。

1
sudo vim /etc/postgresql/14/main/postgresql.conf

在文件中,取消注释并编辑该行,如下所示。

1
2
3
4
5
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#-----------------------------------------------------------------------------
.......
listen_addresses='*'

现在重新启动并启用 PostgreSQL 以使更改生效。

1
2
sudo systemctl restart postgresql
sudo systemctl enable postgresql