Запускаем psql
под пользователем postgres
:
su postgres -c psql
Теперь в консоли PostgreSQL вводим следующие команды:
create database dbname with encoding='UNICODE';
create user dbuser with password 'dbpass';
grant all privileges on database dbname to dbuser;
А также не забываем дать доступ новому пользователю к серверу, для этого в файле /var/lib/pgsql/data/pg_hba.conf
:
# For dbuser:
host dbname dbuser 127.0.0.1/32 md5
local dbname dbuser md5
Где:
dbname
– имя базы данныхdbuser
– имя пользователяdbpass
– пароль пользователяdbuser
И говорим серверу PostgreSQL перечитать измененный конфиг pg_hba.conf
:
root@Linux# service postgresql reload
Скрипт для удобства:
#!/bin/sh
PGPORT=
echo 'Input dbname: '
read dbname
dbuser=${dbuser:-$dbname}
echo "Input dbuser: [$dbuser]" # Generate by dbname.
randpass=$(tr -cd A-Za-z < /dev/urandom | head -c8)
echo "Input dbpass [$randpass]:" # Generate random.
read dbpass
dbpass=${dbpass:-$randpass}
# Facepalm centos... Need fill path to binary psql: /usr/pgsql-9.3/bin/psql
su - postgres -c "/usr/pgsql-9.3/bin/psql --dbname=$DB --port=$PGPORT <<_EOF
\x
CREATE DATABASE $dbname WITH ENCODING='UNICODE';
CREATE USER $dbuser WITH PASSWORD '$dbpass';
GRANT ALL PRIVILEGES ON DATABASE $dbname TO $dbuser;
_EOF
"
# TODO: check error code here.
# Do backup modified cfg files.
cp /var/lib/pgsql/data/pg_hba.conf /var/lib/pgsql/data/pg_hba.conf_`date +%s`
PGPORT=${PGPORT:-5432}
[ -n "$dbname" -a -n "$dbuser" ] && cat <<-_EOF >>/var/lib/pgsql/data/pg_hba.conf
# For $dbuser, generated at `date`:
host $dbname $dbuser 127.0.0.1/32 md5
local $dbname $dbuser md5
_EOF
# Do reload.
service postgresql-9.3 reload
Ссылки по теме:
Comments
comments powered by Disqus