[备忘录] 通过homebrew安装的postgreSQL启动失败

由于我在Homebrew上安装的PostgreSQL无法启动,所以为了备忘录而记录下来。

启动PostgreSQL

PostgreSQL已经使用Homebrew安装完毕。

$ brew services run postgresql@14
==> Successfully started `postgresql@14` (label: homebrew.mxcl.postgresql@14)

当使用brew services run来启动时,看起来已经成功启动了,
但当尝试执行psql时会出现错误。

$ psql -d postgres

psql: error: connection to server on socket "/tmp/.s.PGSQL.5432" failed: No such file or directory
	Is the server running locally and accepting connections on that socket?

当检查brew services时发现它出错了。

$ brew services
Name          Status     User File
postgresql@14 error  256 nako ~/Library/LaunchAgents/homebrew.mxcl.postgresql@14.plist

查看日志

由于似乎将日志输出到了 /opt/homebrew/var/log/postgresql@14.log,因此我们可以查看该日志文件。

$ view /opt/homebrew/var/log/postgresql@14.log
〜 略 〜
2023-09-09 21:31:23.054 JST [84735] FATAL:  could not create shared memory segment: Cannot allocate memory
2023-09-09 21:31:23.054 JST [84735] DETAIL:  Failed system call was shmget(key=5133258, size=56, 03600).
2023-09-09 21:31:23.054 JST [84735] HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded your kernel's SHMALL parameter.  You might need to reconfigure the kernel with larger SHMALL.
        The PostgreSQL documentation contains more information about shared memory configuration.

似乎共享内存分配不够用。

修改共享内存的值 de zhí)

创建/etc/sysctl.conf文件并填写设置。

$ sudo vim /etc/sysctl.conf

kern.sysv.shmmax=536870912
kern.sysv.shmmin=1
kern.sysv.shmmni=4096
kern.sysv.shmseg=1024
kern.sysv.shmall=131072

重新启动Mac

因为我改变了内核参数,所以需要重新启动。

参考的文章

 

广告
将在 10 秒后关闭
bannerAds