【问题标题】:Can't stop automatic PostgreSQL start-up on WSL Ubuntu terminal open无法在 WSL Ubuntu 终端打开时停止自动 PostgreSQL 启动
【发布时间】:2021-03-09 11:51:00
【问题描述】:

我开始了我的编码之旅,我已经设置了 Ubuntu 终端 (WSL2)。我遵循了我表弟给我的这份指南,其中包括一些安装 P​​ostgreSQL 的说明。我认为提前得到它是个好主意,但现在它变成了一场噩梦。我安装了它并按照说明让它在 Ubuntu 终端启动时自动连接到服务器。长话短说,它使终端需要一段时间才能启动,把我的终端放在一些奇怪的目录中,我什至不会使用它,所以我们决定摆脱它。我们尝试了一切,最后决定将其卸载。现在在启动时,它仍在尝试连接到服务器或其他任何东西。我尝试运行代码以使其再次自动启动,以防它可能只是打开和关闭它,但现在它尝试在打开时连接三次。请查看我在下面使用的说明以及我的终端在启动时显示的内容。此外,当我尝试使用命令结束它或其他什么时,它无法执行,因为找不到 postgresql(因为我卸载了它)。有什么想法吗?

路线: 几周后,我们将讨论 SQL 和数据库,您将需要一种称为 PostgreSQL 的东西,这是一个开源的强大且可用于生产的数据库。

现在就安装吧。

sudo apt install -y postgresql postgresql-contrib libpq-dev build-essential
sudo /etc/init.d/postgresql start
sudo -u postgres psql --command "CREATE ROLE `whoami` LOGIN createdb;"

您可以将PostgreSQL配置为自动启动,因此您不必每次打开新终端时都执行sudo /etc/init.d/postgresql start:

sudo echo "`whoami` ALL=NOPASSWD:/etc/init.d/postgresql start" | sudo tee /etc/sudoers.d/postgresql
sudo chmod 440 /etc/sudoers.d/postgresql
echo "sudo /etc/init.d/postgresql start" >> ~/.zshrc

错误代码:

sudo: /etc/init.d/postgresql: command not found
sudo: /etc/init.d/postgresql: command not found
sudo: /etc/init.d/postgresql: command not found
➜  /home

【问题讨论】:

    标签: linux postgresql ubuntu


    【解决方案1】:

    只需从.zshrc 中删除违规行。

    让我补充一点,Windows 的 Linux 仿真不能用于严肃的数据库工作,因为它没有实现重要的系统调用 fsync 来持久化数据。任何操作系统崩溃都会导致数据损坏。

    【讨论】:

    • 你能扩展一下“违规行”吗?您是指 ..zshrc 之前的 start 吗?抱歉,对这些东西很陌生。此外,您将输入什么代码序列来专门撤消自动启动?谢谢你的帮助!!
    • 显然是您添加到.zshrcsudo /etc/init.d/postgresql start。再次删除它。
    猜你喜欢
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 2020-06-21
    • 2023-02-08
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    相关资源
    最近更新 更多