PostgreSql - Установка и настройка
Установка
- $ sudo apt-get install postgresql postgresql-contrib
- $ passwd postgres
- $ sudo su - postgres
- $ psql postgres
Homebrew plst
nano /usr/local/Cellar/postgresql-9.4/9.4.5/homebrew.mxcl.postgresql.plist
<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plistversion="1.0"><dict><key>KeepAlive</key><true/><key>Label</key><string>homebrew.mxcl.postgresql.plist</string><key>ProgramArguments</key><array><string>/usr/local/Cellar/postgresql-9.4/9.4.5/bin/postgres</string><string>-D</string><string>/usr/local/var/postgres</string><string>-r</string><string>/usr/local/var/postgres/server.log</string></array><key>RunAtLoad</key><true/><key>WorkingDirectory</key><string>/usr/local/var</string><key>StandardErrorPath</key><string>/usr/local/var/postgres/server.log</string></dict></plist>
Настройка доступа
nano /etc/postgresql/X.Y/main/pg_hba.conf
local all all trust # replace ident or peer with trust host all all 192.168.1.1/28 md5
# psql -U B -T -h localhost -U postgres
Создание дампа
# pg_dump -U B -T -h host1 dbname > outfile.sql
# pg_dump -U B -T dbname | gzip > filename.gz
# pg_dumpall > outfile.sql
# pg_dump --host 127.0.0.1 --port 5432 --username "postgres" --no-password --format plain --no-owner --no-privileges --no-tablespaces --verbose --no-unlogged-table-data --file "/dump3" "test"
Восстановление из дампа / Restore
# psql park < ./park.sql
# psql -h localhost -f dump2 -U postgres test2
# psql –h localhost –p 5432 --dbname=park --username=mirocow < park2.20151018_142522/park2.sql
Клиенты
- apt-get install phppgadmin
git clone git://github.com/phppgadmin/phppgadmin.git
Вопрос/Ответ
Пользователи
- Как создать пользователя в PostgreSQL?
- CREATE USER ramesh WITH password ‘tmppassword’;
- Как посмотреть список пользователей?
- SELECT * FROM pg_shadow;
- Как сменить пароль у пользователя?
- ALTER USER postgres WITH PASSWORD 'password';
Смена пароля
Включаем однопользовательский режим nano /usr/local/opt/postgresql/pg_hba.conf
local all all trust
- подключаемся к бд, указывая локального пользователя (в моем случае mirocow)
- меняем пароль у пользователя mirocow
включаем многопользовательский режим добавляем строчку в nano /usr/local/opt/postgresql/pg_hba.conf
local all postgres password
Права
Смена прав
- ALTER TABLE sequence_name OWNER TO владелец
Привелегии
- Как посмотреть привелегии пользователя?
SELECT n.nspname as "Схема", c.relname as "Таблица", c.relacl as "Привилегии доступа" FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE c.relkind IN ('r', 'v', 'S') AND pg_catalog.pg_table_is_visible(c.oid) /*AND n.nspname !~ '^pg_'*/ ORDER BY 1, 2;
- Как дать привелегии
- GRANT ALL ON DATABASE demodb TO demo;
Базы
- Как создать базу в PostgreSQL?
- CREATE DATABASE mydb WITH OWNER ramesh;
- Как удалить базу в PostgreSQL?
- DROP DATABASE mydb;
- Как получить весь список баз в Postgresql?
- SELECT datname FROM pg_database;
- SELECT * FROM pg_database;
Таблицы
- Как вывести список всех таблиц?
- SELECT table_name FROM information_schema.tables WHERE table_schema = 'public';