Проверяем наличие пользователей, которые могут работать с базами данных:
postgres=#\du (в выводе будет список пользователей с их разрешениями).
Вход под желанным пользователем, по умолчанию вход производится от пользователя «postgresql»:
bash-4.1$psql –U имя_пользователя
Создание базы данных и управление ими.
Создание базы данных можно сделать двумя способами:
1. Меняем пользователя на Postgres:
#su postgres
bash-4.1$createdb Имя_создаваемой_базы
bash-4.1$exit
2. Надо сменить пользователя на Postgres и запустить утилиту psql.
#su postrges
bash-4.1$psql
postgres=#CREATE DATABASE имя_базы ;
Вывод существующих баз данных производится по команде:
postgres=#\l
Для того чтобы созданный пользователь мог работать с определенной базой данных , нужно изменить права доступа к данной базе данных и дабы все происходило нормально отдать эту базу данных во владения этому пользователю! Проделываем следующие шаги:
postgres=#\q (выход из утилиты psql , если вы еще не выходили)
Следующая команда выполняется от пользователя «postgres», так что если что входим :
#su postgres
bash-4.1$psql имя_базы (вход в утилиту с редактированием нужной базы данных)
здесь будет имя базы=# GRANT ALL PRIVILEGES ON DATABASE имя_базы TO имя_пользователя;
Ответ : GRANT
postgres=#\q
bash-4.1$psql
postgres=#ALTER DATABASE имя_базы_данных owner to Имя_пользователя кому отдать базу данных ;
postgres=#\l - Смотрим вывод и кому чего принадлежит.
После данных действий пользователь получает права на базу данных и получает ее в свое пользование. Обычно этого с головой достаточно. Не забываем ставить знак « ; », там, где он стоит у меня при вводе команд, если вдруг подзабыли или пропустили – не страшно, поставьте на следующей строке и нажмите ввод. Выйти из утилиты psql можно командой:
postgres=#\q
Удаление ненужной базы данных:
#su postgres
bash-4.1$ dropdb Имя_удоляемой_базы_данных
или
bash-4.1$ psql
postgres=# DROP DATABASE Имя_удаляемой базы данных; в ответ "DROP DATABASE"
Бывает ситуация, когда по какой то причине захотелось глянуть, а не появилось ли в базе данных каких нить данных ), и нам на помощь прийдет:
#su postgres
bash-4.1$psql Имя_Базы_данных
Сдесь_будет_имя_базы_данных =# \d - и мы получаем вывод таблиц из данной базы данных.
Резервное копирование и восстановление отдельных баз данных.
Резервная копия отдельной базы данных производится с помощью "pg_dump".
Утилита очень проста в использовании, но перед использованием нужно создать каталог для резервных копий и дабы не путаться создать отдельную папку для резервного копирования индивидуальной базы.
#mkdir /home/rezervdb
#mkdir /home/rezervdb/Имя_базы_данных
#chown -R postgres: /home/rezervdb
Так как мы не работаем под пользователем root с базами данных , то входим под пользователем postgres:
#su postgres
pg_dump Имя_базы_данных > /home/rezervdb/Имя_базы_данных/Имя_базы.pgdump
Вводим пароль пользователя postgres, после чего проверяем создания копии базы:
bash-4.1$cd /home/rezervdb/Имя_базы_данных/
bash-4.1$ls - В выводе видим нашу свеж созданную копию базы данных.
Восстановить, переименовать, переместить проще простого : bash-4.1$ cat /home/Имя_базы_данных/Имя_базы.pgdump | psql Имя_базы
Если нам нужно создать и сразу заархивировать копию базы данных, что бывает очень полезно при больших по объему базах данных, то используем стандартные средства:
bash-4.1$pg_dump Имя_базы_данных | gzip > /home/rezervdb/Имя_базы_данных/Имя_базы.dump.gz
Восстанавление, переименование, перемещение:
bash-4.1$gunzip -c /home/rezervdb/Имя_базы_данных/Имя_базы.dump.gz | psql Имя_базы_данных_в_которую_востанавливаем
Резервное копирование и восстановление всего в один клик
# mkdir /home/rezervdb/postgres
#chown -R postgres: /home/rezervdb
#su postgres
bash-4.1$pg_dumpall > /home/rezervdb/postgres/db.out
Для востановления:
#su postgres
bash-4.1$psql -f /home/rezervdb/postgres/db.out postgres
И на последок , если вы запутались, ни кто не отменял помощь из консоли
postgres-#\?
Выведит помощь по командам и их синтаксису, а ввод допустим:
postgres-#\h CREATE
выведит помощь для всех команд с данным названием.