【问题标题】:Automating install and creation of postgresql databases in shell在 shell 中自动安装和创建 postgresql 数据库
【发布时间】:2013-08-20 21:17:00
【问题描述】:

我正在尝试通过自动 shell 脚本在 postgresql 下创建两个名为 spider 和 geo 的数据库。这是目前为止的代码。

apt-get install -y postgresql
echo "CREATE ROLE deploy LOGIN ENCRYPTED PASSWORD '$APP_DB_PASS';" | sudo -u postgres psql
su postgres -c "createdb spider --owner deploy"
su postgres -c "createdb geo --owner deploy"
/etc/init.d/postgresql reload

任何人都可以看看我是否以正确的方式进行此操作。此外,当我尝试通过运行以下命令查看它是否有效时,出现错误:

root:~# psql -l                                                                               
psql: FATAL:  role "root" does not exist 

我哪里出错了,有什么办法可以改进这个脚本吗?

【问题讨论】:

  • “--owner deploy”不应该是“--owner=deploy”吗?

标签: sql linux postgresql shell debian


【解决方案1】:

根据 apt-get 判断,您的部署平台是 Ubuntu-(ish)。

apt-get install -y postgresql
echo "CREATE ROLE deploy LOGIN ENCRYPTED PASSWORD '$APP_DB_PASS';" | sudo -u postgres psql
su postgres -c "createdb spider --owner deploy"
su postgres -c "createdb geo --owner deploy"
service postgresql reload

那么你应该可以在命令行指定用户登录了:

psql -U root spider

psql -U deploy spider

一般来说,你是在正确的轨道上。

【讨论】:

  • 我在命令行中运气更好:sudo -u postgres psql -c "create database spider --owner deploy"
猜你喜欢
  • 1970-01-01
  • 2016-11-12
  • 1970-01-01
  • 2019-10-04
  • 2012-11-26
  • 1970-01-01
  • 2021-10-21
  • 2012-01-13
  • 2019-07-18
相关资源
最近更新 更多