Настройка PostgreSQL: различия между версиями

Материал из support.qbpro.ru
imported>Supportadmin
(Новая страница: «[http://hutpu4.net/linux-open-source/postgresql-phppgadmin-for-debian-ubuntu.html источник] Для установки нужных нам пакетов …»)
 
imported>Supportadmin
Нет описания правки
Строка 2: Строка 2:
Для установки нужных нам пакетов пишем в командной строке:
Для установки нужных нам пакетов пишем в командной строке:


$ sudo apt-get install postgresql postgresql-client postgresql-contrib
$ sudo apt-get install postgresql postgresql-client postgresql-contrib
 
Этой командой мы установим сервер и клиент БД и некоторые дополнительные скрипты для работы с БД.
Этой командой мы установим сервер и клиент БД и некоторые дополнительные скрипты для работы с БД.


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


$ sudo su postgres -c psql postgres
$ sudo su postgres -c psql postgres


  postgres=# ALTER USER postgres WITH PASSWORD 'password';
  postgres=# ALTER USER postgres WITH PASSWORD 'password';
  postgres=# \q
  postgres=# \q
Вместо password пишем свой пароль. Данными командами мы изменили пароль пользователю «postgres» в базе данных «postgres». Теперь нужно задать соответствующий пароль системному пользователю postgres. Для это пишем:
Вместо password пишем свой пароль. Данными командами мы изменили пароль пользователю «postgres» в базе данных «postgres». Теперь нужно задать соответствующий пароль системному пользователю postgres. Для это пишем:


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


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


$ sudo nano /etc/postgresql/8.3/main/postgresql.conf
$ sudo nano /etc/postgresql/8.3/main/postgresql.conf
 
и в секции «Connections and Authentication» раскомментируем следующие строки:
и в секции «Connections and Authentication» раскомментируем следующие строки:


listen_addresses = 'localhost'
listen_addresses = 'localhost'
 
и
и


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


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


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


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


host    all        all        192.168.1.2        255.255.255.0  md5
host    all        all        192.168.1.2        255.255.255.0  md5
 
если нужно задать целую подсеть — 192.168.1.0
если нужно задать целую подсеть — 192.168.1.0


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


$ sudo /etc/init.d/postgresql-8.3 restart
$ sudo /etc/init.d/postgresql-8.3 restart
 
На этом сервер должен нормально стартануть и работать как планировалось.
На этом сервер должен нормально стартануть и работать как планировалось.


Строка 49: Строка 59:
если Apache уже установлен:
если Apache уже установлен:


$ sudo apt-get install php5-pgsql phppgadmin wwwconfig-common
$ sudo apt-get install php5-pgsql phppgadmin wwwconfig-common
 
если не установлен, устанавливаем и его:
если не установлен, устанавливаем и его:


$ sudo apt-get install apache2 php5 php5-pgsql phppgadmin wwwconfig-common
$ sudo apt-get install apache2 php5 php5-pgsql phppgadmin wwwconfig-common
 
Подключаем файл конфигурации phpPgAdmin в Апач (в Ubuntu он сам не подключается, в Дебиане данное действие не требуется) и перезагружаем веб-сервер:
Подключаем файл конфигурации phpPgAdmin в Апач (в Ubuntu он сам не подключается, в Дебиане данное действие не требуется) и перезагружаем веб-сервер:


$ ln -s /etc/phppgadmin/apache.conf /etc/apache2/conf.d/phppgadmin
$ ln -s /etc/phppgadmin/apache.conf /etc/apache2/conf.d/phppgadmin
$ /etc/init.d/apache2 restart
$ /etc/init.d/apache2 restart
 
открываем браузер и пишем:
открываем браузер и пишем:


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


$ sudo -u postgres createuser pgadmin
$ sudo -u postgres createuser pgadmin
Shall the new role be a superuser? (y/n)
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 databases? (y/n)
Shall the new role be allowed to create more new roles? (y/n)
Shall the new role be allowed to create more new roles? (y/n)
 
отвечаем на несколько вопросов, что бы наделить нашего пользователя соответствующими привилегиями (я своего сделал суперпользователем), а потом задаем ему пароль следующим образом:
отвечаем на несколько вопросов, что бы наделить нашего пользователя соответствующими привилегиями (я своего сделал суперпользователем), а потом задаем ему пароль следующим образом:


$ sudo su postgres -c psql postgres
$ sudo su postgres -c psql postgres


  postgres=# ALTER USER pgadmin WITH PASSWORD 'password';
  postgres=# ALTER USER pgadmin WITH PASSWORD 'password';
  postgres=# \q
  postgres=# \q
Вместо password пишем пароль и пробуем залогиниться в phpPgAdmin. Сам веб-интерфейс интуитивно понятен и у меня даже на русском языке по умолчанию :) правда не такой функциональный как хотелось бы. Здесь вы можете создать базу данных или пользователя, удалять, импортировать, редактировать и т.п. в зависимости от ваших привилегий и потребностей.
Вместо password пишем пароль и пробуем залогиниться в phpPgAdmin. Сам веб-интерфейс интуитивно понятен и у меня даже на русском языке по умолчанию :) правда не такой функциональный как хотелось бы. Здесь вы можете создать базу данных или пользователя, удалять, импортировать, редактировать и т.п. в зависимости от ваших привилегий и потребностей.

Версия от 16:09, 8 ноября 2013

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

$ 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. Сам веб-интерфейс интуитивно понятен и у меня даже на русском языке по умолчанию :) правда не такой функциональный как хотелось бы. Здесь вы можете создать базу данных или пользователя, удалять, импортировать, редактировать и т.п. в зависимости от ваших привилегий и потребностей.