Gitlab 配置外部PostgreSQL

1. 简介

上篇文章介绍了安装GitLab方式,由于默认使用的postgreSQL数据库,不能通过gui工具更直白的看到表结构,如果需要深入了解数据库资源通过Shell 方式的话这无疑是个令人恼火的方式。当然,GitLab这里我们可以配置非包装安装的数据库。下面简单的介绍下步骤。

2. 新增PostgreSQL 超级用户

如果自己有超级用户的话可以跳过

终端输入:

#是否安装postgreSQL 有的话只需要安装postgresql-contrib
psql --version

#安装psql 和 psql contrib 模块
sudo apt-get install postgresql postgresql-contrib

# 创建超级用户
sudo -u postgres createuser --superuser [USERNAME]
sudo -u postgres psql
#录入密码
passwrod [USERNAME]
q

3. 修改GitLab 配置

目录: /etc/gitlab/gitlab.rb

postgresql['enable'] = false
gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'utf8'
gitlab_rails['db_host'] = '127.0.0.1'
gitlab_rails['db_port'] = '5432'
#上个步骤创建的用户
gitlab_rails['db_username'] = 'USERNAME'
gitlab_rails['db_password'] = 'PASSWORD'

4. 配置GitLab使其有效

sudo gitlab-ctl reconfigure

#检查是否使用自定义配置
sudo gedit  /opt/gitlab/embedded/service/gitlab-rails/config/database.yml

5. 使用GUI 工具查看数据资源

工具篇详见另一篇文章: http://blog.csdn.net/jason_5991/article/details/77868781

postgresql的远程链接出错原因分析

在写一个在线编译系统时打算用远程的数据库进行测试,但是链接出现了问题.
这里先说一下远程连接时需要修改的配置吧(只是针对Linux用户).

远程链接配置

需要修改pg_hba.conf和postgresql.conf这两个文件.
PS:如果你在安装数据库时,在进行数据库初始化操作(以centos6.X版本为例),如下:

sudo service postgresql-9.5 initdb

在初始化数据库时可以指定参数 –PGDATA=“/data”,该参数是用于指明数据库的数据文件的存放路径,默认是在/var/lib/pgsql/9.5/data路径下。

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     ident
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            ident
#host    replication     postgres        ::1/128                 ident

刚刚安装完成的postgresql是这样的.
只是针对自己本机登录识别.

需要修改如下:

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            trust
host    all             all             0.0.0.0/24              trust
# IPv6 local connections:
host    all             all             ::1/128                 trust

另一个要改的就是postgresql.conf文件.
将listen_address =”localhost” 引号里面改为*,即对所有地址监听.

原因

在ipv4下面添加的0.0.0.0/24这个是对全网段的许可,24表示的是子网掩码.
这里很多人都将后面的ident改为MD5的认证方式,导致FATAL: password authentication failed for user “postgres”错误的出现.
其实这个错误的根本原因就是:用户密码认证错误引起的,因为postgresql安装完成之后,默认的就是md5的认证方式,正确的方式就是直接时候trust就ok了.

希望以上对你有帮助.

Linux(CentOS)下Postgresql数据库的安装配置

1. 验证本机是否已经安装:

[root@master ~]# rpm -qa | grep postgresql

2. yum方式加-y参数安装(-y默认需要选择的全部选择是)

[root@master ~]# yum -y install postgresql*

3.初始化数据库

[root@master ~]# /etc/rc.d/init.d/postgresql initdb

Initializing database: [ OK ]

4. 启动postgresql数据库

[root@master ~]# /etc/rc.d/init.d/postgresql start
Starting postgresql service: [ OK ]

5. 查看默认postgresql数据库的默认端口是否正常启动

[root@master ~]# ps -ef |grep 5432
postgres 14517 1 0 00:21 ? 00:00:00 /usr/bin/postmaster -p 5432 -D /var/lib/pgsql/data

6. 对postgres数据库账号修改密码

执行ln建立软链接,否则可能会报下面的错误

[root@master ~]# psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
[root@master ~]# sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432
[root@master ~]# su postgres
bash-4.1$ psql
psql (8.4.20)
Type "help" for help.
postgres=# ALTER USER postgres WITH PASSWORD 'postgres';

7. 修改pg_hba.conf配置文件中的认证方式为md5(最后几行对应ident改为md5)

[root@master ~]# vi /var/lib/pgsql/data/pg_hba.conf 
# /var/lib/pgsql/data是RedHat或CentOS下默认安装目录

8. 重启postgres数据库服务,重新加载配置文件信息

[root@master ~]# /etc/rc.d/init.d/postgresql restart
Stopping postgresql service: [ OK ]
Starting postgresql service: [ OK ]
[root@master ~]# psql -U postgres
Password for user postgres: 
psql (8.4.20)
Type "help" for help.
postgres=#

9. 创建测试数据库并查看所有数据库信息

postgres=# create database pg_test_db;
CREATE DATABASE
postgres=# select *from pg_database;

10. 打开扩展显示,类似mysql里面的G参数,使返回结果竖着显示

postgres=# x
Expanded display is on.

--ps auxw | grep post

11. 修改postgresql.conf和pg_hba.conf配置参数

listen_addresses 
  • 数据库名与用户名注意大小写,PostgreSQL是区分大小的;
  • CIDR-ADDRESS(用户的IP范围)的值的格式是:IP/数值
    数值取值范围为:0,8,16,24,32 即表示掩码bit的个数;

例如:

  • 32 -> 192.168.1.1/32 表示必须是来自这个IP地址的访问才合法;
  • 24 -> 192.168.1.0/24 表示只要来自192.168.1.0 ~ 192.168.1.255的都合法;
  • 16 -> 192.168.0.0/16 表示只要来自192.168.0.0 ~ 192.168.255.255的都合法;
  • 8 -> 192.0.0.0/16 表示只要来自192.0.0.0 ~ 192.255.255.255的都合法;
  • 0 -> 0.0.0.0/0 表示全部IP地址都合法,/左边的IP地址随便了只要是合法的IP地址即可;

12. 内存参数的设置

PostgreSQL安装完毕后,可以修改一下两个主要的内存参数。

  • shared_buffers:共享内存的大小,主要用于共享数据块
  • work_men:单个SQL执行时,排序、hash join所使用的内存,SQL运行完后,内存就释放了。
  • shared_buffers默认值为32MB,work_men为1MB,如果你的机器上有足够的内存,可以把这个参数改得大一些,这样数据库就可以缓存更多的数据块,当读取数据时,就可以从共享内存中读,而不需要再从文件上去读取。
  • work_men设置大一些,会让排序操作更快一些。

使用bash脚本自定义创建postgres docker容器

1. 查看镜像库中postgres镜像

Docker search postgres 

2. 下载镜像

docker pull postgres

3.查看镜像

docker images

4.配置sh脚本

mkdir  postgres  (创建文件夹)

cd postgres 

mkdir data (创建数据文件夹)

touch postgres.sh (常见sh脚本文件)

vi postgres.sh(编辑脚本)

粘贴以下代码到postgres.sh文件中

#!/bin/sh  

NAME=hy-postgres  
PORT=5432  
CURDIR=`pwd`  
PASSWORD=123456  
case "$1" in  
    create)  
        port_map="-p 172.17.0.1:5432:5432"  
        volumn_map="-v $PWD/data:/data"  
        env_map="-e POSTGRES_PASSWORD=$PASSWORD"   
        docker run --name $NAME -d $env_map $port_map $volumn_map postgres:9.4.3  
        ;;  
    delete)  
        docker rm $NAME  
        ;;  
    start)  
        docker start $NAME  
        ;;        
    stop)  
        docker stop $NAME  
        ;;  
    status)  
        docker ps -a | grep $NAME  
        ;;  
    restart)  
        docker restart $NAME  
        ;;    
    bash)  
        docker exec -it $NAME bash  
        ;;  
    exec)  
        shift  
        docker exec -it $NAME $*  
        ;;  
    *)  
        echo "Usage: $0 {start|stop|status|bash|exec|restart}"  
        exit 1  
    ;;  
esac  

5. 使用脚本启动镜像

./postgres.sh create(创建镜像)

./postgres.sh start(启动镜像)

postgresql设置主键自增的方法

一 :

CREATE TABLE customers  

(  

  customerid SERIAL primary key ,  

  companyname character varying,  

  contactname character varying,  

  phone character varying,  

 country character varying  

)  

二 :

CREATE SEQUENCE event_id_seq  

START WITH 1  

INCREMENT BY 1  NO MINVALUE  NO MAXVALUE  

CACHE 1;

alter table event alter column id set default nextval('event_id_seq'); 

PostgreSQL CPU占用100%性能分析及慢sql优化

在数据库运维当中,一个DBA比较常遇到又比较紧急的问题,就是突发的CPU满(CPU利用率达到100%),导致业务停滞。遇到CPU满,往往需要从后端数据库开始排查,追溯到具体SQL,最终定位到业务层。下面是这个问题具体的处理方法。

查看连接数变化

CPU利用率到达100%,首先怀疑,是不是业务高峰活跃连接陡增,而数据库预留的资源不足造成的结果。我们需要查看下,问题发生时,活跃的连接数是否比平时多很多。对于RDS for PG,数据库上的连接数变化,可以从控制台的监控信息中看到。而当前活跃的连接数>可以直接连接数据库,使用下列查询语句得到:

select count( * ) from pg_stat_activity where state not like '%idle';

追踪慢SQL

如果活跃连接数的变化处于正常范围,则很大概率可能是当时有性能很差的SQL被大量执行导致。由于RDS有慢SQL日志,我们可以通过这个日志,定位到当时比较耗时的SQL来进一步做分析。但通常问题发生时,整个系统都处于停滞状态,所有SQL都慢下来,当时记录的>慢SQL可能非常多,并不容易排查罪魁祸首。这里我们介绍几种在问题发生时,即介入追查慢SQL的方法。

1、第一种方法是使用pg_stat_statements插件定位慢SQL,步骤如下。

1.1 如果没有创建这个插件,需要手动创建。我们要利用插件和数据库系统里面的计数信息(如SQL执行时间累积等),而这些信息是不断累积的,包含了历史信息。为了更方便的排查当前的CPU满问题,我们要先重置计数器。

create extension pg_stat_statements;
select pg_stat_reset();
select pg_stat_statements_reset();

1.2 等待一段时间(例如1分钟),使计数器积累足够的信息。

1.3 查询最耗时的SQL(一般就是导致问题的直接原因)。

select * from pg_stat_statements order by total_time desc limit 5;

1.4 查询读取Buffer次数最多的SQL,这些SQL可能由于所查询的数据没有索引,而导致了过多的Buffer读,也同时大量消耗了CPU。

select * from pg_stat_statements order by shared_blks_hit+shared_blks_read desc limit 5;

2、第二种方法是,直接通过pg_stat_activity视图,利用下面的查询,查看当前长时间执行,一直不结束的SQL。这些SQL对应造成CPU满,也有直接嫌疑。

select datname, usename, client_addr, application_name, state, backend_start, xact_start, xact_stay, query_start, query_stay, replace(query, chr(10), ' ') as query from (select pgsa.datname as datname, pgsa.usename as usename, pgsa.client_addr client_addr, pgsa.application_name as application_name, pgsa.state as state, pgsa.backend_start as backend_start, pgsa.xact_start as xact_start, extract(epoch from (now() - pgsa.xact_start)) as xact_stay, pgsa.query_start as query_start, extract(epoch from (now() - pgsa.query_start)) as query_stay , pgsa.query as query from pg_stat_activity as pgsa where pgsa.state != 'idle' and pgsa.state != 'idle in transaction' and pgsa.state != 'idle in transaction (aborted)') idleconnections order by query_stay desc limit 5;

3、第3种方法,是从数据表上表扫描(Table Scan)的信息开始查起,查找缺失索引的表。数据表如果缺失索引,大部分热数据又都在内存时(例如内存8G,热数据6G),此时数据库只能使用表扫描,并需要处理已在内存中的大量的无关记录,而耗费大量CPU。特别是对于表记录数超100的表,一次表扫描占用大量CPU(基本把一个CPU占满),多个连接并发(例如上百连接),把所有CPU占满。

3.1 通过下面的查询,查出使用表扫描最多的表:

select * from pg_stat_user_tables where n_live_tup > 100000 and seq_scan > 0 order by seq_tup_read desc limit 10;

3.2 查询当前正在运行的访问到上述表的慢查询:

select * from pg_stat_activity where query ilike '%<table name>%' and query_start - now() > interval '10 seconds';

3.3 也可以通过pg_stat_statements插件定位涉及到这些表的查询:

select * from pg_stat_statements where query ilike '%<table>%'order by shared_blks_hit+shared_blks_read desc limit 3;

处理慢SQL

对于上面的方法查出来的慢SQL,首先需要做的可能是Cancel或Kill掉他们,使业务先恢复:

select pg_cancel_backend(pid) from pg_stat_activity where  query like '%<query text>%' and pid != pg_backend_pid();
select pg_terminate_backend(pid) from pg_stat_activity where  query like '%<query text>%' and pid != pg_backend_pid();

如果这些SQL确实是业务上必需的,则需要对他们做优化。这方面有“三板斧”:

1、对查询涉及的表,执行ANALYZE <table>或VACUUM ANZLYZE <table>,更新表的统计信息,使查询计划更准确。注意,为避免对业务影响,最好在业务低峰执行。

2、执行explain (query text)或explain (buffers true, analyze true, verbose true) (query text)命令,查看SQL的执行计划(注意,前者不会实际执行SQL,后者会实际执行而且能得到详细的执行信息),对其中的Table Scan涉及的表,建立索引。

3、重新编写SQL,去除掉不必要的子查询、改写UNION ALL、使用JOIN CLAUSE固定连接顺序等到,都是进一步深度优化SQL的手段,这里不再深入说明。

PostgreSQL数据库修改表增加主键

PostgreSQL数据库测试环境中有多张表没有添加主键约束,只有一个serial的自增字段。现在需要把那些没有主键的表都加上,serial类型的字段为id 。

首先是怎么找到PostgreSQL数据库中哪些表没有主键?我们看下pg_class这个表,里面有个relhaspkey字段,如果为t说明有主键,f即没有主键。例如下面这个sql 。

SELECT n.nspname AS "Schema",c.relname AS "Table Name",c.relhaspkey AS "Has PK" 
FROM
 pg_catalog.pg_class c
JOIN
 pg_namespace n
ON (
 c.relnamespace = n.oid
 AND n.nspname NOT IN ('information_schema', 'pg_catalog')
 AND c.relkind='r'
)
WHERE c.relhaspkey = 'f'
ORDER BY c.relhaspkey, c.relname
;

然后就是对这些表增加主键约束。删除和添加主键的sql如下所示:

alter table server drop constraint server_pkey ;
alter table server add primary key (id) ;

主键添加完成之后可以通过d查看。

zhangnq=# d server
 Table "public.server"
 Column | Type | Modifiers 
--------+---------------+------------------------------------------------------
 id | integer | not null default nextval('server_int_seq'::regclass)
 ip | character(50) | 
Indexes:
 "server_pkey" PRIMARY KEY, btree (id)

最后就是把这个思路写到脚本里面,运行脚本批量添加。脚本里面把执行失败的表都放在error.log文件中。

脚本:

#!/bin/bash
export PATH=/opt/PostgreSQL/93/bin:$PATH
export PGDATA=/data/pgsql
export PGHOME=/opt/PostgreSQL/93
export PGPORT=5432
dbname=$1
if [ ! $dbname ];then
 echo "Please enter the database name."
 exit 1
fi
psql -c "dt" -d $dbname >/dev/null
if [ $? -ne 0 ];then
 exit 1
fi
error_log="error.log"
echo "">$error_log
sql=`cat << EOF
SELECT n.nspname AS "Schema",c.relname AS "Table Name"
FROM
 pg_catalog.pg_class c
JOIN
 pg_namespace n
ON (
 c.relnamespace = n.oid
 AND n.nspname NOT IN ('information_schema', 'pg_catalog')
 AND c.relkind='r'
)
WHERE c.relhaspkey = 'f'
ORDER BY c.relhaspkey, c.relname
;
EOF`
schemas=`psql -t -A -c "$sql" -d $dbname |cut -d "|" -f 1`
tables=`psql -t -A -c "$sql" -d $dbname |cut -d "|" -f 1`
for res in `psql -t -A -c "$sql" -d $dbname`
do
 schema=`echo $res|cut -d "|" -f 1`
 table=`echo $res|cut -d "|" -f 2`
 tablename=`echo "$schema.$table"`
 psql -e -c "alter table $tablename add primary key (id) " -d $dbname
 if [ $? -ne 0 ];then
 echo "$dbname : Add primary key to $tablename error." >>$error_log
 fi
done

说下碰到的的问题,在测试的时候发现如果把主键drop掉之后pg_class.relhaspkey值还是为t,但是用d查看确实没有主键了。解决的办法是手动vacuum这个表,即vacuum server 。

zhangnq=# select relname,relhaspkey from pg_class where relname='server' ;
 relname | relhaspkey 
---------+------------
 server | t
(1 row)
zhangnq=# alter table server drop constraint server_pkey ;
ALTER TABLE
zhangnq=# select relname,relhaspkey from pg_class where relname='server' ;
 relname | relhaspkey 
---------+------------
 server | t
(1 row)
zhangnq=# vacuum server ;
VACUUM
zhangnq=# select relname,relhaspkey from pg_class where relname='server' ;
 relname | relhaspkey 
---------+------------
 server | f
(1 row)
zhangnq=# alter table server add primary key (id) ;
ALTER TABLE
zhangnq=# select relname,relhaspkey from pg_class where relname='server' ;
 relname | relhaspkey 
---------+------------
 server | t
(1 row)

查看pg_class的说明后发现原来pg_class只有在状态由false变成ture的时候会自动修改。这么设计可以提高并发性。

Several of the Boolean flags in pg_class are maintained lazily: they are guaranteed to be true if that's the correct state, but may not be reset to false immediately when the condition is no longer true. For example, relhasindex is set by CREATE INDEX, but it is never cleared by DROP INDEX. Instead, VACUUM clears relhasindex if it finds the table has no indexes. This arrangement avoids race conditions and improves concurrency.

修改PostgreSQL数据库的默认用户postgres的密码

有时候,忘记了postgresql 安装时默认用户postgres 的密码,怎么办呢?

linux shell命令下面输入: sudo -u postgres psql (这样就可以直接登录进postgres 了, 然后在里面可以进行添加用户,修改密码之类的,都不是问题了!!)


修改PostgreSQL数据库的默认用户postgres的密码(注意不是linux系统帐号)

第一步:

1. PostgreSQL登录(使用psql客户端登录)

# sudo -u postgres psql        
  • //其中,sudo -u postgres 是使用postgres 用户登录的意思
  • //PostgreSQL数据默认会创建一个postgres的数据库用户作为数据库的管理员,密码是随机的,所以这里
  • //设定为’postgres’

2. 修改PostgreSQL登录密码:

postgres=# ALTER USER postgres WITH PASSWORD 'postgres';
  • //postgres=#为PostgreSQL下的命令提示符

3. 退出PostgreSQL psql客户端

postgres=# q

[代码说明]

‘#’和’#’之前的字符是系统提示符,’postgres=#’是psql客户端的提示符,红色字符为输入命令(本文其它部分亦如此);

[功能说明]

PostgreSQL数据默认会创建一个postgres的数据库用户作为数据库的管理员,密码是随机的,我人需要修改为指定的密码,这里设定为’postgres’

第二步:

修改linux系统的postgres用户的密码(密码与数据库用户postgres的密码相同)

1. 删除PostgreSQL用户密码

# sudo passwd -d postgres
  • passwd: password expiry information changed.
  • //passwd -d 是清空指定用户密码的意思

2. 设置PostgreSQL用户密码

PostgreSQL数据默认会创建一个linux用户postgres,通过上面的代码修改密码为’postgres’(这取决于
第二步中的密码,只要与其相同即可)。

现在,我们就可以在数据库服务器上用 postgres帐号通过psql或者pgAdmin等等客户端操作数据库了。

#sudo -u postgres passwd
  • 输入新的 UNIX 密码:
  • 重新输入新的 UNIX 密码:
  • passwd:已成功更新密码

—————————————————————-分割线———————————————————————-

有时候,发现同一台ubuntu 上面有两个postgres server 的实例

未分类

要修改其中一个实例的postgres (9.5)的密码。

sudo -u postgres psql -p 5433

这样,如下图所示,就登录进9.5这个实例了,这样就可以修改这个实例的postgres 的密码了。!

未分类

查看这个postgres实例的用户列表。只有一个安装的时候默认的用户。

未分类

查看这个postgres 实例的数据库列表, 只有安装的时候默认的数据库。

未分类

CentOS7安装配置PostgreSQL数据库服务器

步骤摘要

    yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
    yum install postgresql96-server postgresql96-contrib
    /usr/pgsql-9.6/bin/postgresql96-setup initdb
    systemctl start postgresql-9.6
    systemctl enable postgresql-9.6
    firewall-cmd --add-service=postgresql --permanent
    firewall-cmd --reload
    su - postgres
    psql -U postgres
    ALTER USER postgres with encrypted password 'abc123';
    q
    exit
    vi /var/lib/pgsql/9.6/data/postgresql.conf
    vi /var/lib/pgsql/9.6/data/pg_hba.conf
    systemctl restart postgresql-9.6.service

步骤详情

安装yum源

打开https://yum.postgresql.org/repopackages.php ,找到自己需要的版本。

未分类

本文撰写时,PostgreSQL 10还是测试版,因此在此演示9.6版。
右键复制链接地址。

未分类

不放心是否复制成功的话可以粘贴出来看看。

未分类

以root模式进入CentOS7,输入“yum install ”后面加上刚刚复制的链接,回车。

未分类

输入“y”,回车。

未分类

安装PostgreSQL

输入“yum install postgresql96-server postgresql96-contrib”并回车。
(如果使用其他版本的PostgreSQL则需要把其中的两个“96”换成对应的数字)

未分类

输入“y”并回车。

未分类

安装后,可执行文件在“/usr/pgsql-9.5/bin/”, 数据和配置文件在“/var/lib/pgsql/9.6/data/”。因此输入“/usr/pgsql-9.6/bin/postgresql96-setup initdb”并回车,初始化数据库。

未分类

输入“systemctl start postgresql-9.6”并回车,启动服务。
输入“systemctl enable postgresql-9.6”并回车,设为开机自启。
(如果使用其他版本的PostgreSQL则需要把其中的两个“9.6”换成对应的版本)

未分类

输入“firewall-cmd –add-service=postgresql –permanent”并回车,开放防火墙。
输入“firewall-cmd –reload”并回车,重启防火墙。

修改默认PostgreSQL用户密码

  • PostgreSQL的默认用户为“postgres”。
  • 输入“su – postgres”并回车,切换至用户。
  • 输入“psql -U postgres”并回车,登录数据库。
  • 输入“ALTER USER postgres with encrypted password ‘abc123’;”(不要漏了“;”)并回车,设置默认用户postgre的密码,此处密码为“abc123”,可自行修改。
  • 输入“q”并回车, 退出数据库。
  • 输入“exit”并回车,退出用户。

未分类

配置远程访问

输入“vi /var/lib/pgsql/9.6/data/postgresql.conf”并回车。
(如果使用其他版本的PostgreSQL则需要把其中的“9.6”换成对应的版本)
光标下翻,找到“listen_addresses”。

未分类

按“i”键进入插入编辑模式,如果想对所有IP开放,则将“localhost”改为“*”即可,如果想仅对部分IP开放,多个IP之间用“, ”(逗号+空格)隔开。

改完之后去掉“listen_address”前面的“#”。

未分类

编辑完成后,按“Esc”键,输入“:wq”并回车。
输入“vi /var/lib/pgsql/9.6/data/pg_hba.conf”并回车,将光标移至底部。
(如果使用其他版本的PostgreSQL则需要把其中的“9.6”换成对应的版本)

未分类

按“i”键进入插入编辑模式,在“IPv4 local connections”下方添加允许连接的IP。
如果想允许所有IPv4地址,则加入一行“host all all 0.0.0.0/0 md5”。IPv6方法类似。

未分类

编辑完成后,按“Esc”键,输入“:wq”并回车。
输入“systemctl restart postgresql-9.6.service”并回车,重启服务。
(如果使用其他版本的PostgreSQL则需要把其中的“9.6”换成对应的版本)