Архив рубрики: postgesql

Prevent Postgresql from running at startup

29

Note that with PostgreSQL 9.0 (and probably newer) on Mac OS 10.6.8 (and probably older), in order to prevent the PostgreSQL server from auto-starting, you have to:

  1. Go to /Library/LaunchDaemons/
  2. Open com.edb.launchd.postgresql-9.0.plist in an editor as root(replace 9.0 with your correct version number), e.g. sudo vim com.edb.launchd.postgresql-9.0.plist.
  3. Locate the line <key>RunAtLoad</key>
  4. Change the next line from <true/> to <false/>
  5. Save and exit.

That should do it. Also, if you want to stop the server immediately, without restarting, su to postgres and run /Library/PostgreSQL/9.0/bin/pg_ctl stop -D<your data dir>. You can find out which is your current data dir with ps aux|grep postgre.

Source: http://forums.enterprisedb.com/posts/list/2240.page#8321

pg install with phpmyadmin

link

Для установки нужных нам пакетов пишем в командной строке:

$ sudo apt-get install postgresql postgresql-client postgresql-contrib

Этой командой мы установим сервер и клиент БД и некоторые дополнительные скрипты для работы с БД.

В отличии от привычного мне MySQL, Postres не спрашивает пароль для администратора при установке, поэтому его нужно задать вручную. Суперпользователь БД в PostgreSQL называется postgres. Следующими командами присвоим ему пароль:

$ sudo su postgres -c psql postgres

 postgres=# ALTER USER postgres WITH PASSWORD 'password';
 postgres=# \q

Вместо password пишем свой пароль. Данными командами мы изменили пароль пользователю «postgres» в базе данных «postgres». Теперь нужно задать соответствующий пароль системному пользователю postgres. Для это пишем:

$ sudo passwd postgres

Задаем такой же пароль как и выше.

Далее настроим наш сервер для работы в сети. Для этого своим любимым редактором открываем файл /etc/postgresql/8.3/main/postgresql.conf например:

$ sudo nano /etc/postgresql/8.3/main/postgresql.conf

и в секции «Connections and Authentication» раскомментируем следующие строки:

listen_addresses = 'localhost'

и

password_encryption = on

вместо localhost через запятую пишем IP-адреса на которые хотим повесить PostgreSQL сервер. Например:

listen_addresses = '127.0.0.1, 192.168.1.1'

здесь я повесил сервер на внутренний айпишник, а так же оставил его на локалхосте (если не прописать, то не работает phpPgAdmin консольный клиент).

Если нужно что бы наш сервер был доступен на всех сетевых интерфейсах, вместо IP-адресов ставим ‘*’.

Теперь мы должны определить кто из пользователей сети должен иметь доступ к серверу. Для этого в конец файла /etc/postgresql/8.3/main/pg_hba.conf дописываем строчку:

host    all         all         [ip адрес]          [маска подсети]  md5

вместо [ip адрес] пишем айпи клиента в нашей сети, вместо [маска подсети] нашу маску подсети, например:

host    all         all         192.168.1.2         255.255.255.0  md5

если нужно задать целую подсеть — 192.168.1.0

Перезапускаем сервер:

$ sudo /etc/init.d/postgresql-8.3 restart

На этом сервер должен нормально стартануть и работать как планировалось.

Установим теперь phpPgAdmin:

если Apache уже установлен:

$ sudo apt-get install php5-pgsql phppgadmin wwwconfig-common

если не установлен, устанавливаем и его:

$ sudo apt-get install apache2 php5 php5-pgsql phppgadmin wwwconfig-common

Подключаем файл конфигурации phpPgAdmin в Апач (в Ubuntu он сам не подключается, в Дебиане данное действие не требуется) и перезагружаем веб-сервер:

$ ln -s /etc/phppgadmin/apache.conf /etc/apache2/conf.d/phppgadmin
$ /etc/init.d/apache2 restart

открываем браузер и пишем:

http://ip-адрес_сервера/phppgadmin

мы должны увидеть домашнюю страницу phpPgAdmin.

В целях безопасности вход в phpPgAdmin запрещен от имени пользователя postgres. Поэтому создаем нового пользователя ‘pgadmin’ с правами администратора, для администрирования нашего сервера через веб-интерфейс:

$ sudo -u postgres createuser pgadmin
Shall the new role be a superuser? (y/n)
Shall the new role be allowed to create databases? (y/n)
Shall the new role be allowed to create more new roles? (y/n)

отвечаем на несколько вопросов, что бы наделить нашего пользователя соответствующими привилегиями (я своего сделал суперпользователем), а потом задаем ему пароль следующим образом:

$ sudo su postgres -c psql postgres

 postgres=# ALTER USER pgadmin WITH PASSWORD 'password';
 postgres=# \q

Вместо password пишем пароль и пробуем залогиниться в phpPgAdmin. Сам веб-интерфейс интуитивно понятен и у меня даже на русском языке по умолчанию :) правда не такой функциональный как хотелось бы. Здесь вы можете создать базу данных или пользователя, удалять, импортировать, редактировать и т.п. в зависимости от ваших привилегий и потребностей.