`
liyf_324
  • 浏览: 35484 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

Postgresql连接失败和设置系统shmmax的方法

阅读更多

昨天我在远程连接postgres数据库时遇到这样的错误:

psql: could not connect to server: Connection refused
	Is the server running on host "my host name" (IP) and accepting
	TCP/IP connections on port 5432?

 

 于是我修改了postgresql.conf: 

  

listen_addresses = '*'

 

 在pg_hba.conf, 添加了我的IP,如下:

#for n/w access
host    all         c2d         10.147.16.0/24        md5

 

后来查了些资料才知道要修改postgresql.conf,修改listen_addresses = '*' 对所有的地址都监听,同时修改缓存为7G,restart postgres后又遇到了一些错误:

2015-05-14 09:39:00 CST FATAL:  could not create shared memory segment: Invalid argument
2015-05-14 09:39:00 CST DETAIL:  Failed system call was shmget(key=5432001, size=7709171712, 03600).
2015-05-14 09:39:00 CST HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMMAX parameter.  You can either reduce the request size or reconfigure the kernel with larger SHMMAX.  To reduce the request size (currently 7709171712 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
	If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.
	The PostgreSQL documentation contains more information about shared memory configuration.

 

这是要求修改系统的SHMMAX, 我的解决办法如下:

# view current shmmax size
$more /proc/sys/kernel/shmmax
# change the size temporarily to 8G
$sudo su 
$sudo echo 8589934592 > /proc/sys/kernel/shmmax
# change the size temporarily
$ sudo vim /etc/sysctl.conf
append the line: kernel.shmmax = 8589934592

 

当然这里配置的是8G,我psql用到的是7G,修改一下就可以了。

分享到:
评论

相关推荐

    Matlab与PostgreSQL数据库的连接

    将 Matlab 与 PostgreSQL 数据库连接起来,可以实现数据的高效交互和分析。本文将详细介绍 Matlab 与 PostgreSQL 数据库的连接方法。 知识点:Matlab 的数据库连接 Matlab 提供了多种方式来连接数据库,其中包括...

    易飞三大报错排查详解_CC(系统控制员连接失败).docx

    易飞系统控制员连接失败排查详解(CC) 易飞系统控制员连接失败是易飞安装中常见的问题之一...易飞系统控制员连接失败和报表数据库连接失败是易飞安装中常见的问题,本文详细介绍了排查步骤,以帮助初学者快速解决问题。

    使用Druid数据连接池连接PostgreSQL简单例子

    Druid是一个功能强大且性能优异的数据源连接池,而PostgreSQL则是一种流行的开源关系型数据库管理系统。本教程将详细介绍如何在Java项目中使用Druid数据连接池连接PostgreSQL数据库,以实现一个简单的测试环境。 ...

    Postgresql连接oracle驱动并实现读写

    ### Postgresql连接Oracle数据库并通过oracle_fdw驱动实现读写操作 #### 一、概述 本文档将详细介绍如何在CentOS 6.2环境下通过PostgreSQL 9.5.6使用`oracle_fdw`驱动程序来连接Oracle 11.2客户端,并实现数据的...

    Arcgis连接 postgresql sde 时遇到的问题以及解决办法

    首先,PostgreSQL是一个开源的关系型数据库管理系统,而SDE(Spatial Database Engine)是Esri提供的一个组件,用于在GIS(地理信息系统)中管理和操作空间数据。ArcGIS通过SDE接口与PostgreSQL数据库建立连接,以便...

    asp连接postgresql数据库

    asp连接postgresql数据库 的源码

    PostgreSQL连接驱动

    PostgreSQL连接驱动

    封装连接PostgreSQL类

    8. **异常处理**:在C++中,可以利用异常处理机制来捕获和处理可能出现的错误,比如连接失败或查询执行失败。这可以通过抛出和捕获自定义异常类来实现。 总结来说,"封装连接PostgreSQL类"是一个高效、安全的编程...

    PostgreSQL JDBCL连接:postgresql-42.2.5.jar包.zip

    在本篇中,我们将深入探讨如何使用`postgresql-42.2.5.jar`这个PostgreSQL JDBC驱动包来建立和管理与PostgreSQL数据库的连接。 **1. PostgreSQL JDBC驱动介绍** `postgresql-42.2.5.jar`是PostgreSQL官方提供的...

    连接postgresql数据库需要的jar包

    这个JAR文件通常称为`postgresql-jdbc.jar`,它包含了所有必要的类和方法,使得Java应用程序能够通过JDBC API连接到PostgreSQL服务器,执行查询、插入、更新和删除等操作。 在Java项目中,引入JDBC驱动JAR文件的...

    presto部署并连接postgresql

    本篇文章将详细介绍如何部署Presto并将其连接到PostgreSQL数据库,同时也会提及配置文件的设置和官方文档的参考。 首先,部署Presto涉及到以下几个步骤: 1. **获取Presto源码或二进制分发版**:你可以从Presto的...

    ArcGIS连接Postgresql需要的32位客户端文件

    9. **故障排查**:如果遇到连接问题,检查这些文件是否完整、正确地被放置在系统中,或者更新到与ArcGIS和PostgreSQL版本兼容的最新版本,通常是解决方法之一。 总之,ArcGIS通过这些32位客户端库文件与PostgreSQL...

    CodeSmith8.0.1连接PostgreSQL报错问题解决

    然而,在尝试与PostgreSQL数据库集成时,由于某些特定库的缺失,可能会导致连接失败。在本例中,问题在于CodeSmith缺少对Npgsql.dll的支持,这是一个用于.NET平台的PostgreSQL数据提供者,用于处理.NET应用程序与...

    postgresql与vs连接需用到的库文件

    将PostgreSQL与VS连接,可以方便地进行数据存储、查询和处理。本文将详细讲解在Windows环境下,使用VS连接PostgreSQL所需的一些关键库文件及其作用。 1. **libpq.dll**:这是PostgreSQL的C语言接口库,提供了一系列...

    navicat 连接PostgreSQL报错

    2. **服务器端 SSL 设置**:如果 PostgreSQL 数据库服务器端强制要求使用 SSL 连接,则客户端也必须支持并正确配置 SSL。 3. **系统环境问题**:操作系统或注册表中的某些设置可能会影响到 Navicat 的正常工作。 ##...

    (源码)基于C++和OTL4的PostgreSQL数据库连接系统.zip

    # 基于C++和OTL4的PostgreSQL数据库连接系统 ## 项目简介 本项目是一个基于C++和OTL4(Oracle Transparent Library 4.0)库的PostgreSQL数据库连接系统。通过使用unixODBC作为中间层,项目实现了从Oracle数据库到...

    cpp-Odyssey先进的多线程PostgreSQL连接池和请求路由器

    3. 连接超时:设置连接超时策略,防止长时间未使用的连接占用过多资源,确保连接池的有效性。 四、请求路由策略 1. 轮询:最简单的分配方式,每个请求按顺序分配到不同的后端服务器,确保负载均衡。 2. 权重分配:...

    MyBatis通过 JDBC连接 PostgreSQL数据库 最小例子

    在本文中,我们将深入探讨如何使用MyBatis框架通过JDBC连接PostgreSQL数据库,构建一个最小的示例项目。MyBatis是一个轻量级的Java持久层框架,它简化了数据库操作,允许开发者将SQL语句直接嵌入到Java代码中,提供...

Global site tag (gtag.js) - Google Analytics