PostgreSQL安装(CentOS7)
打开 PostgreSQL 官网 https://www.postgresql.org/,点击菜单栏上的 Download ,可以看到这里包含了很多平台的安装包,包括 Linux、Windows、Mac OS等 。
Linux 我们可以看到支持 Ubuntu 和 Red Hat 等各个平台,点击具体的平台链接,即可查看安装方法:
点击上图中的 file browser,我们还能下载 PostgreSQL 最新的源码。
本章节以 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
检查一下数据库存储路径:
启动数据库: systemctl start postgresql.service
启动成功,会监听本机127.0.0.1的5432端口。
登录测试:
默认情况下,我们使用psql postgres命令登录,使用的是root用户,会提示没有这个角色,我们按照提示使用psql -U postgres命令登录,发现提示Peer authentication failed for user "postgres",我们只能切换到postgres用户,然后直接登录:
修改配置:
配置文件经过初始化之后,全部会生成在/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.conf文件,修改监听地址:
再次启动数据库:
修改成功之后,重启数据库服务,监听本机地址发生变化,不再是127.0.0.1了。
登录测试:
本地可以在root用户下使用psql -U postgres直接登录了,不会报错。不再出现之前登录失败的情况了。
远程连接测试:
安装postgresql就是为了让外部能够连接的,这里安装之前,需要修改postgres用户的密码,在本机,修改密码有两种方式:直接\password 的方式和通过alter user postgres with password 'postgres'语句:
远程登录的时候,我们需要用户名和密码,这里在windows上使用navicat premium:至此,安装过程就彻底结束了,后续如何操作数据库,就是和安装无关了。
【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;
推荐阅读
-
PostgreSQL安装(CentOS7)
-
Nginx环境下Php安装 nginxphp
-
Ubuntu下Ruby的安装
-
windows上使用pear安装php扩展 博客分类: php php pear pecl
-
Vue基础精讲 —— 规范代码三步走?关于eslint和editorconfig以及precommit的安装和使用
-
Linux vsftp安装配置和虚拟用户设置 博客分类: toollinux
-
Ubuntu下通过Anaconda快速完成Tensorflow-CPU版安装(极速)!!
-
Linux Weblogic 10.3.6 安装 p27395085_1036_Generic.zip 补丁
-
【保姆级教程】手把手教你进行Go语言环境安装及相关VSCode配置
-
【Linux】虚拟机CentOS 7 安装jdk_1.7 rpm版本