我是 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”服务。这样,服务就会自动配置为在启动时启动。