Для установки PostgreSQL в Linux воспользуйтесь этой заметкой.
Установить PostgreSQL
brew install postgresql
service ...
и /etc/init.d
– у нас само собой нет, поэтому pg_ctl
:
→ pg_ctl status
pg_ctl: no database directory specified and environment variable PGDATA unset
Try "pg_ctl --help" for more information.
Но даже это не работает – не поднят PostgreSQL. Поднимаем PostgreSQL:
→ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
waiting for server to start.... done
server started
Настроим PostgreSQL
Отлично, теперь создадим юзера, базу данных:
sudo psql -U postgres
psql: FATAL: role "postgres" does not exist
Окей, юзера тоже нет. А что же есть?
→ psql -l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-----------+----------+-------------+-------------+-------------------------------
postgres | USER_NAME | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | USER_NAME | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/USER_NAME +
| | | | | USER_NAME=CTc/USER_NAME
template1 | USER_NAME | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/USER_NAME +
| | | | | USER_NAME=CTc/USER_NAME
(3 rows)
Есть наш юзер с правами суперюзера. Однако, привывычка...
→ sudo psql -U USER_NAME -d postgres
psql (10.1)
Type "help" for help.
postgres=# CREATE USER postgres WITH SUPERUSER PASSWORD 's3cr3t';
CREATE ROLE
postgres=# ALTER DATABASE postgres OWNER TO postgres;
ALTER DATABASE
postgres=# \q
Также теперь можно грохнуть своего пользователя:
postgres=# DROP USER USER_NAME;
DROP ROLE
И по пользоваться уже привычно.
Как создать пользователя и базу данных в PostgreSQL
Ну и на всякий случай:
postgres=# CREATE DATABASE DB_NAME;
CREATE DATABASE
postgres=# CREATE USER USER_NAME WITH password 's3cr3t';
CREATE ROLE
postgres=# GRANT ALL ON DATABASE DB_NAME TO USER_NAME;
GRANT
postgres=# \c DB_NAME
You are now connected to database "DB_NAME" as user "postgres".
DB_NAME=# REVOKE ALL ON SCHEMA public FROM public;
REVOKE
DB_NAME=# GRANT ALL ON SCHEMA public TO DB_NAME;
GRANT
DB_NAME=# \q
– как вариант.