Shell脚本创建PostgreSQL用户及数据库

PostgreSQL官方文档 PostgreSQL-10
PostgreSQL中文手册 PostgreSQL-10
PostgreSQL常见问题手册FAQ


[Shell]创建PostgreSQL用户及数据库

Shell脚本内容

请注意:(以下脚本存在一些变量,请根据实际情况使用或修改)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
# Create a Database Script by PostgreSQL.

DB_HOST="postgresql.com"
ADMIN_USER="postgres"
ADMIN_PASS="17s1x02kk^s"
ADMIN_DB="postgres"

DEST_USER="test_user"
DEST_PASS="98kav1xz452@"
DEST_DATABASE="test_db"

psql -U $ADMIN_USER -W $ADMIN_PASS -h $DB_HOST -d $ADMIN_DATABASE << EOF 2>/dev/null
export PGPASSWORD=$ADMIN_PASS
psql -U $ADMIN_USER -h $DB_HOST -d $ADMIN_DB << EOF
CREATE USER ${DEST_USER} WITH PASSWORD '${DEST_PASS}';
CREATE DATABASE $DEST_DATABASE;
GRANT ALL PRIVILEGES ON DATABASE $DEST_DATABASE TO ${DEST_USER};
ALTER SCHEMA public OWNER to ${DEST_USER};
alter database $DEST_DATABASE set timezone='PRC';
EOF

脚本详情讲解

请注意:(该脚本每次执行都需要修改创建的用户及密码数据库等信息,你可以通过输入赋值到变量进行创建操作)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash
# Create a Database Script by PostgreSQL.

DB_HOST="postgresql.com" #远程数据库地址
ADMIN_USER="postgres" #管理用户
ADMIN_PASS="17s1x02kk^s" #管理用户密码
ADMIN_DB="postgres" #管理数用户据库

DEST_USER="test_user" #需要创建的用户名
DEST_PASS="98kav1xz452@" #创建用户名密码
DEST_DATABASE="test_db" #创建数据库

psql -U $ADMIN_USER -W $ADMIN_PASS -h $DB_HOST -d $ADMIN_DATABASE << EOF 2>/dev/null
export PGPASSWORD=$ADMIN_PASS
psql -U $ADMIN_USER -h $DB_HOST -d $ADMIN_DB << EOF
CREATE USER ${DEST_USER} WITH PASSWORD '${DEST_PASS}';
CREATE DATABASE $DEST_DATABASE;
GRANT ALL PRIVILEGES ON DATABASE $DEST_DATABASE TO ${DEST_USER};
ALTER SCHEMA public OWNER to ${DEST_USER};
alter database $DEST_DATABASE set timezone='PRC';
EOF

More Info: PostgreSQL