网站数据库服务器怎么启动,启动数据库服务器

有几个非常常见的原因会导致服务器启动失败。通过检查服务器日志或者使用手工启动的方法

(不做 stdout 和 stderr 的重定向),就可以看到错误消息。下面我们更详细地解释了其中一些错误消息。

LOG: could not bind IPv4 socket: Address already in use

HINT: Is another postmaster already running on port 5432? If not, wait a few seconds and retry.

FATAL: could not create TCP/IP listen socket

就像它提示的那样:你试图在已经有一个服务器运行着的端口上再运行了一个服务器。不过,

如果内核的错误消息不是Address already in use或者是其它的变种,

那就有可能是别的毛病。比如,试图在一个保留的端口上运行服务器会收到下面这样的信息:$ postgres -p 666

LOG: could not bind IPv4 socket: Permission denied

HINT: Is another postmaster already running on port 666? If not, wait a few seconds and retry.

FATAL: could not create TCP/IP listen socket

像这样的信息:FATAL: could not create shared memory segment: Invalid argument

DETAIL: Failed system call was shmget(key=5440001, size=4011376640, 03600).

可能意味着内核对共享内存区的限制小于PostgreSQL试图分配的缓冲区大小

(本例中是 4011376640 字节)。或者可能意味着你根本就没有配置 System-V 风格的共享内存支持。

作为一个临时的解决办法,你可以试着以小于正常数量的缓冲区数(shared_buffers)

启动服务器。你最终还是会希望重新配置内核,以增加共享内存的尺寸。

如果你试图在同一台机器上启动多个服务器,而且它们所需的总空间超过了内核的限制,也会报这个错。

像下面这样的错误:FATAL: could not create semaphores: No space left on device

DETAIL: Failed system call was semget(5440126, 17, 03600).

并不意味着着你已经用光磁盘空间了。它的意思是内核的

System V信号灯的限制小于PostgreSQL想创建的数量。

和上面一样,你可以通过减少允许的连接数(max_connections)来绕开,

但最终你还是会希望修改内核的限制。

如果你收到一个"illegal system call"错误,那么很有可能是内核根本不支持共享内存或者信号灯。

如果是这样的话,你唯一的选择就是重新配置内核并且把这些特性打开。

关于配置系统System V IPC资源的细节见第 17.4.1 节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值