如何设置PostgreSQL允许被远程访问

如何设置PostgreSQL允许被远程访问,第1张

postgresql默认情况下,远程访问不能成功,如果需要允许远程访问,需要修改两个配置文件,说明如下:
1postgresqlconf
将该文件中的listen_addresses项值设定为“”,在90 Windows版中,该项配置已经是“”无需修改。
2pg_hbaconf
在该配置文件的host all all 127001/32 md5行下添加以下配置,或者直接将这一行修改为以下配置
host all all 0000/0 md5
如果不希望允许所有IP远程访问,则可以将上述配置项中的0000设定为特定的IP值。

要保证 PG 数据库集群中数据的同步,可以采用以下一些方法:
1 流复制:流复制是 PG 数据库集群中最常用的数据同步方式。它基于二进制日志的基础上,将主服务器上的事务日志传输到从服务器上进行重放。当主服务器执行一个新的事务时,它会向从服务器发送一个 WAL 记录,然后该记录会被写入从服务器的 WAL,从而实现了数据同步。
2 逻辑复制:逻辑复制是另一种常用的 PG 数据库集群数据同步方式。它通过在主服务器上解析 SQL 插入,更新和删除语句,然后再将这些语句传输到从服务器上执行,来实现数据同步。
3 复制槽:复制槽是一个用于保存复制信息的数据结构,可以用于控制流复制和逻辑复制。通过使用复制槽,可以确保从服务器可以接收到主服务器上的所有更改,即使从服务器离线或重启。
4 pgpool-II:pgpool-II 是一个流行的第三方开源工具,用于 PG 数据库集群中的负载均衡和故障转移。通过在 pgpool-II 中设置正确的参数,可以实现数据同步,从而提高系统的可用性和性能。
综上所述,要保证 PG 数据库集群中数据的同步,可以采用多种方法。具体选择哪一种同步方式取决于您的系统架构和业务需求。

PostgreSQL数据库服务器,就需要进行相应的配置。 配置远 程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hbaconf和postgresqlconf。 pg_hbaconf:配置对数据库的访问权限, postgresqlconf:配置PostgreSQL数据库服务器的相应的参数。 步骤: 1修改pg_hbaconf文件,配置用户的访问权限(#开头的行是注释内容): # TYPE DATABASE USER CIDR-ADDRESS METHOD # “local” is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127001/32 trust host all all 19216810/24 md5 # IPv6 local connections: host all all ::1/128 trust 其中,第7条是新添加的内容,表示允许网段19216810上的所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验证。 其中,数字24是子网掩码,表示允许19216810--1921681255的计算机访问! 2修改postgresqlconf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。 定位到#listen_addresses=’localhost’。PostgreSQL安装完成后,默认是只接受来在本机localhost的连接请 求。 将行开头都#去掉,将行内容修改为listen_addresses=’‘来允许数据库服务器监听来自任何主机的连接请求 上面就是Linux设置PostgreSQL远程访问的方法介绍了,如果你不设置,则PostgreSQL默认只能范围本地,功能比较局限。

如下是解决思路:
根据出错信息判断出客户端未监听到实例服务名
1、通过重启服务的方式启动数据库,再次连接仍无法连接服务器。
2、既然第一种方法不能解决问题,那就第二种方法,考虑监听listenerora
监听配置文件listenerora中可以不必指定监听的服务名(安装Oracle10g后也是没有指定的)。正常情况下一般只要数据库启动,客户端连接数据库也没有什么问题,但是有时重复启动关闭也会出现ORA-12514错误。
既然listenerora中没有指定监听,我们可以在listenerora文件中指定监听的实例名,这样该问题应该可以连接。
步骤如下:
在oracle服务器Oracle安装目录(我的在C:\oracle下,每个人的不一样,根据自己的情况查找)Network/admin目录下找到listenerora 我的如下图所示
# listenerora Network Configuration File: C:\oracle\product\1020\db_1\network\admin\listenerora
# Generated by Oracle configuration tools
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\1020\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = C:\oracle\product\1020\db_1)
(SID_NAME = ORCL)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 19216859129)(PORT = 1521))
)
)
标红的为我添加的部分,ORCL为监听的实例名。
然后,oracle服务器重新启动一下,再次连接即成功,这也是我们配置完listenerora 监听后,经常忘记的,
再次尝试,可以看到客户端可以连接上oracle服务器了,而且PL/SQL再次连接也没有问题了。

Linux下PostgreSQL数据库服务启动后自动停止的原因可能有很多,下面是一些可能的解决方案:
检查日志:在/var/log/postgresql/目录下查看日志文件,看是否有任何错误或异常信息。
检查配置文件:检查/etc/postgresql/版本号/main/postgresqlconf配置文件,确保所有配置都正确。
检查内存和硬盘空间:确保服务器上有足够的内存和硬盘空间来运行PostgreSQL服务器

连接数据库服务器

(1)   启动服务器端监听器与数据库服务

Linux/Unix下,启动监听器:

$ lsnrctl start

关闭监听器:

$ lsnrctl stop

查看监听状态:

$ lsnrctl status

启动数据库:

$ sqlplus /nolog

SQL>conn sys@myoracle as sysdba   --这里的myoracle是前面配置的客户端本地服务名

SQL>conn / as sysdba

SQL>startup

Windows下,启动监听器:

C:lsnrctl start

启动Oracle实例服务:

C:oradim a href=">

关闭Oracle实例服务:

C:oradim –shutdown –sid myoracle

以上服务必须同时启动,客户端才能连接数据库。由于默认配置的监听器名称是Listener,上述命令可以正常启动监听器,如果监听器名称是其它名称,如aListener,则需要用下列方式才能启动:

Linux/Unix下:

$ lsnrctl start aListener

Windows下:

C:lsnrctl start aListener

(2)   测试连接数据库服务器

测试的方法多种多样,可以在上面配置本地服务名时进行测试,也可以是第三方客户端工具,如PL/SQL Developer,最方便的是用Oracle自带的sqlplus工具,以下利用sqlplus进行测试:

C:sqlplus /nolog

SQL>conn zgh@myoracle

已连接。


pg数据库连接超时是未能正确连接。根据查询相关资料信息,未能正确配置PG数据库连接参数、数据库服务器宕机或网络问题会导致pg数据库连接超时。建议检查一下数据库连接参数和网络是否正常,如果这些都没有问题,可以试试重新启动PG数据库服务。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13262259.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-28
下一篇 2023-06-28

发表评论

登录后才能评论

评论列表(0条)

保存