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