在Fedora中安装PostgreSQL并配置密码和开启远程登陆
在Fedora中安装PostgreSQL并配置密码
首先先放出官方的文档教程 :https://fedoraproject.org/wiki/PostgreSQL
我写的内容其实也八九不离十,站在一个普通写CRUD的Demo的爱好者角度写怎么安装配置,减了防火墙的内容,加了改密码,保证看完跟着做能快速用上,不耽误时间
20220329更新一下
在Fedora35中,我又安装了一次PostgreSQL,发现如果要远程登录,还需要在postgresql.conf中添加listen_addresses = '*'
,如果不修改,则默认允许localhost的连接,我将这个操作也更新到下边
20201219更新一下
今日新安装了一下,结果发现照这个步骤报错了,现在必须要先初始化才能启动服务,也就是后面的第三步和第四步要交换顺序才行
打个补丁,后面看到这篇文章也注意一下
首先是安装PostgreSQL,我个人觉得没必要用PostgreSQL官网仓库安装版本,Fedora仓库的版本又新又好使
sudo dnf install postgresql-server postgresql-contrib
第二步配置PostgreSQL自启
sudo systemctl enable postgresql
第三步启动PostgreSQL
sudo systemctl start postgresql
第四步进行初始化配置
sudo postgresql-setup --initdb --unit postgresql
这时候数据库初始化完成,给出数据存放的位置和日志文件存放的位置
# 提示信息,非输入内容
* Initializing database in '/var/lib/pgsql/data'
* Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log
第五步修改PostgreSQL数据库的postgres账户密码
首先切换到postgres账户
sudo su - postgres
在postgres账户下连接本地数据库服务器
# 使用psql工具可以连接到本地数据库
psql
# 连接成功会变成这样postgres=#
接下来就是修改密码了
ALTER USER postgres WITH PASSWORD '密码';
提示ALTER ROLE就是成功了,然后就可以使用帐号密码连接了
第六步更改用户的验证方式和配置远程访问权限
改完密码并不是可以直接使用账户和密码登录了,PostgreSQL默认是通过验证用户的方式登录的,要改成密码验证才行
首先\q
退出psql工具,但是还是要在postgres用户下,因为只有postgres用户才有权限修改配置文件
/var/lib/pgsql/data/pg_hba.conf
我们要修改这个配置文件,至于你用vim还是nano修改都不重要
打开这个配置文件拉到最后
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all peer
host replication all 127.0.0.1/32 ident
host replication all ::1/128 ident
因为现在基本都是使用IPv4,所以我们只需要关心IPv4这一行就好
host all all 127.0.0.1/32 md5
将最后的ident更改为md5,即将PostgreSQl验证方式由通过用户验证更改为通过帐号密码验证
如果要允许其他IP(非localhost)访问数据库,可以将中间的IP段配置为对应的IP范围
host all all 0.0.0.0/0 md5
# 只是一个允许所有IP通过帐号密码访问的配置
在新版本中,我也不知道是哪个版本,还需要修改/var/lib/pgsql/data/postgresql.conf
将默认的配置
listen_addresses = 'localhost'
更改为
listen_addresses = '*'
有可能找不到这个配置,在Fedora35源中默认安装的PostgreSQL配置文件将这个配置注释了起来,也许后面的配置中就没有了,如果没有找到了就自己加上,然后重启服务即可