Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы{{tag>databases postgres postgresql macos homebrew}} ====== 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 <code xml> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="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> </code> ==== Настройка доступа ==== Не безопасно, даем внешний доступ для IP **192.168.1.1** ([[networks#%D0%BC%D0%B0%D1%81%D0%BA%D0%B8|можно использовать маски сети]]) **nano /etc/postgresql/X.Y/main/pg_hba.conf** <code> # Database administrative login by Unix domain socket #local all postgres peer # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only #local all all peer # IPv4 local connections: #host all all 127.0.0.1/32 md5 # IPv6 local connections: #host all all ::1/128 md5 # Allow replication connections from localhost, by a user with the # replication privilege. local replication all peer host replication all 127.0.0.1/32 md5 host replication all ::1/128 md5 # Override local all all trust host all all 127.0.0.1/32 trust host all all 192.168.1.1/32 trust </code> <code sh> # psql -U B -T -h localhost -U postgres </code> ===== Вопрос/Ответ ===== ==== Пользователи ==== * **Как создать пользователя в 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 <code> local all all trust </code> * подключаемся к бд, указывая локального пользователя (в моем случае mirocow) * меняем пароль у пользователя mirocow включаем многопользовательский режим добавляем строчку в nano /usr/local/opt/postgresql/pg_hba.conf <code> local all postgres password </code> ==== Права ==== === Смена прав === * ALTER TABLE sequence_name OWNER TO владелец ==== Привелегии ==== * **Как посмотреть привелегии пользователя?** * <code> 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; </code> * **Как дать привелегии** * 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'; СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal