如何让 Postgres 在启动时自动启动

如何让 Postgres 在启动时自动启动

我是 Ubuntu 新手,我想知道如何让 postgresql 在启动时自动启动以及如何配置我的设置,以便在需要时可以启动 postgres 服务器。

我正在开发一个小型 rails 项目,在 postgres 正确启动方面遇到了困难。我不得不卸载并重新安装 postgres 才能启动并运行项目,才能完成工作。我一直在使用这些命令。

sudo apt-get -y update
sudo apt-get purge postgresql* # ending * is important
sudo apt-get install postgresql libpq-dev

来自这篇文章

https://stackoverflow.com/questions/17934055/postgresql-cannot-connect-to-server-locally

跳过

sudo add-apt-repository ppa:pitti/postgresql

因为它似乎已经过时了,并且下面有一条关于不需要它的评论。

如果有帮助的话,我的 pg_hba.conf 文件似乎位于

/etc/postgresql/9.1/main

我在 Chrome OS 上运行 Ubuntu 12.04

谢谢大家的帮助,抱歉,这是新手的问题!

答案1

如果您想在启动时启动 postgres,这样您就不必一直重新启动,只需执行以下操作:

sudo update-rc.d postgresql enable

这将始终在启动时启动你的 postgres。希望它能帮助到某些人

答案2

从 Ubuntu 15.04 开始执行以下操作:

sudo systemctl enable [SERVICE]

就你的情况来说:

sudo systemctl enable postgresql

答案3

所以我弄清楚了如何启动 postgresql,这样我就不需要重新安装 newb 移动了。

sudo service postgresql start

然后你需要切换到 postgres 用户才能在 Postgresql 中进行任何更改

sudo -u postgres -i

我确信这个问题有比我的更好的答案,但这可能会对未来处于我这个位置的人有所帮助。

我仍需要让 Postgresql 在启动时启动。有人知道答案吗?我很乐意将其标记为正确。

干杯

答案4

如果您不使用默认配置(如特定的集群文件夹或自定义端口),则可以选择创建在启动时触发的任务;并将该任务配置为执行启动服务或您喜欢的任何内容crontab的脚本。postgresql

步骤1:切换postgres用户

sudo su - postgres

步骤 2:使用编辑器在用户的主文件夹中创建名为“start.sh”的脚本postgres,并在其中填充启动postgresql服务的代码(或您喜欢的任何内容)。在我的情况下(debian 10 和 postgresql 11),集群文件夹(“main”)位于已安装的磁盘(“/mnt/disk”)中,因此脚本为:

#!/bin/sh
/usr/lib/postgresql/11/bin/pg_ctl -D /mnt/disk-b/main -l /var/log/postgresql/pg_ctl.log start

步骤 3:使该脚本可执行

chmod +x $HOME/start.sh

步骤 4:创建crontab重启时触发的任务。

crontab -e

打开一个编辑器,其中包含与用户相关的任务计划postgres

步骤 5:使用打开的编辑器插入一行包含以下内容

@reboot $HOME/start.sh

步骤 6:验证任务是否已添加

crontab -l

注意启动脚本是使用用户来执行的postgres,这是手册上的要求postgresql

编辑1:如果您的 postgresql 安装包中包含命令pg_createcluster,则更好的选择是使用该命令创建集群,并使用命令systemctl启动“postgresql”服务。这样,服务就会自动配置为在启动时启动。

相关内容