欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PostgreSQL安装(CentOS7)

程序员文章站 2024-03-23 15:50:16
...

打开 PostgreSQL 官网 https://www.postgresql.org/,点击菜单栏上的 Download ,可以看到这里包含了很多平台的安装包,包括 Linux、Windows、Mac OS等 。

Linux 我们可以看到支持 Ubuntu 和 Red Hat 等各个平台,点击具体的平台链接,即可查看安装方法:

PostgreSQL安装(CentOS7)

点击上图中的 file browser,我们还能下载 PostgreSQL 最新的源码。

PostgreSQL安装(CentOS7)

本章节以 CentOS7为例。

For RHEL / CentOS / SL / OL 7, 8 Or Fedora 29 And Later Derived Distributions:

  postgresql-setup initdb
  systemctl enable postgresql.service
  systemctl start postgresql.service

CentOS7安装 PostgreSQL

安装:yum install postgresql-server

安装postgresql-server会附带安装上postgres客户端,因此不必重复安装。安装完成,postgresql操作相关的命令都会添加到/usr/bin目录下,可以在命令行下直接使用。

[aaa@qq.com ~]# which psql
/usr/bin/psql
[aaa@qq.com ~]# which postgresql-setup
/usr/bin/postgresql-setup
[aaa@qq.com ~]# whereis postgresql-setup
postgresql-setup: /usr/bin/postgresql-setup /usr/share/man/man1/postgresql-setup.1.gz
[aaa@qq.com ~]# psql --version
psql (PostgreSQL) 9.2.24
[aaa@qq.com ~]#

 初始化数据库:

安装完成之后,不能直接启动数据库,需要先执行初始化,初始化之后,会生成postgresql相关配置文件和数据库文件,他们都会存放在路径/var/lib/pgsql/data下。

postgresql-setup initdb

检查一下数据库存储路径:

PostgreSQL安装(CentOS7)

启动数据库: systemctl start postgresql.service

启动成功,会监听本机127.0.0.1的5432端口。 

PostgreSQL安装(CentOS7)

登录测试:

默认情况下,我们使用psql postgres命令登录,使用的是root用户,会提示没有这个角色,我们按照提示使用psql -U postgres命令登录,发现提示Peer authentication failed for user "postgres",我们只能切换到postgres用户,然后直接登录:

PostgreSQL安装(CentOS7)

修改配置:

配置文件经过初始化之后,全部会生成在/var/lib/pgsql/data目录下。需要解决root用户下无法通过psql -U postgres登录的问题,我们需要修改配置文件pg_hba.conf,将

local    all    all    peer

修改为:

local    all    all    trust 

另外,我们需要让外部IP能够连接本机的postgresql,我们需要修改postgresql.conf配置文件中的listen_addresses属性为"*",并且在pg_hba.conf配置文件中新增一行配置:

host    all    all    0.0.0.0/0    md5

PostgreSQL安装(CentOS7)

编辑postgresql.conf文件,修改监听地址:

PostgreSQL安装(CentOS7)

再次启动数据库:

修改成功之后,重启数据库服务,监听本机地址发生变化,不再是127.0.0.1了。

PostgreSQL安装(CentOS7)

登录测试:

本地可以在root用户下使用psql -U postgres直接登录了,不会报错。不再出现之前登录失败的情况了。

PostgreSQL安装(CentOS7)

远程连接测试:

安装postgresql就是为了让外部能够连接的,这里安装之前,需要修改postgres用户的密码,在本机,修改密码有两种方式:直接\password 的方式和通过alter user postgres with password 'postgres'语句:

PostgreSQL安装(CentOS7)

远程登录的时候,我们需要用户名和密码,这里在windows上使用navicat premium:至此,安装过程就彻底结束了,后续如何操作数据库,就是和安装无关了。

PostgreSQL安装(CentOS7)

【postgresql】role "root" does not exist 解决办法

问题原因:

postgresql是不允许使用root用户启动服务的,所以必须切换到其他用户下才可以进行正常的服务启动,但是有些时候我们又需要使用root用户来使用postgresql

解决办法:
方法一: 非必要情况下就不要用root用户使用postgresql

方法二:手动创建root role,我这里是使用用户名为postgres来启动postgresql服务的

su postgres
# 创建root用户
postgres=#create user root with password 'password';    
CREATE ROLE

# 将数据库权限赋予root用户
postgres=# GRANT ALL PRIVILEGES ON DATABASE mydatabase to root;
GRANT

# 将用户修改为超级用户(看实际需求)
postgres=# ALTER ROLE root WITH SUPERUSER;

postgres=# \q

也可以直接将root创建为超级用户,login是指允许登录

CREATE ROLE root superuser PASSWORD 'password' login;

 

 

相关标签: MySQL高级