«Монтирование vdi (образ VirtualBox) в Ubuntu» и «Настройка PostgreSQL»: разница между страницами

Материал из support.qbpro.ru
(Различия между страницами)
imported>Vix
 
imported>Vix
Нет описания правки
 
Строка 1: Строка 1:
=='''Монтирование через стандартную утилиту virtualbox-fuse'''==
Для установки нужных нам пакетов пишем в командной строке:


По некоторым причинам мне приходится пользоваться '''VirtualBox''', к сожалению Wine может запустить далеко не все приложения, которые мне нужны для работы. И иногда нужно что то достать с виртуального жёсткого диска, но каждый раз запускать '''VirtualBox''' слишком долго.
$ sudo apt-get install postgresql postgresql-client postgresql-contrib


Вот тут то и поможет пакет '''virtualbox-fuse'''. Он использует библиотеку для доступа к образам '''VirtualBox''' и монтирует в локальную папку, используя FUSE. В локальной папке вы обнаружите EntireDisk, Partition1, Partition2 и т.д.
Этой командой мы установим сервер и клиент БД и некоторые дополнительные скрипты для работы с БД.


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


Теперь откройте файл /etc/fuse.conf:
  $ sudo su postgres -c psql postgres
  sudo nano /etc/fuse.conf


В данном файле найдите такую строчку:
postgres=# ALTER USER postgres WITH PASSWORD 'password';
postgres=# \q


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


Уберите решётку (#) и сохраните файл.
$ sudo passwd postgres


Теперь разберёмся с самой программой. Подключим образ vdi:
Задаем такой же пароль как и выше.
sudo vdfuse -f /home/sk8er/VirtualBoxVMs/Windows7/Windows7.vdi /home/sk8er/VirtualBoxVMs/Windows7/mount


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


    /home/sk8er/VirtualBoxVMs/Windows7/Windows7.vdi - путь к образу vdi
$ sudo nano /etc/postgresql/8.3/main/postgresql.conf
    /home/sk8er/VirtualBoxVMs/Windows7/mount - путь для монтирования


В монтируемой папке появятся файлы EntireDisk, Partition1, Partition2 и т.д. Собственно их и нужно подключить, чтобы видеть файлы и папки на разделах виртуального диска.
и в секции «Connections and Authentication» раскомментируем следующие строки:


Итак, ищем нужный файл (я просто выбрал тот, что имел самый большой объём) и подключаем:
  listen_addresses = 'localhost'
  sudo mount /home/sk8er/VirtualBoxVMs/Windows7/mount/Partition1 /home/sk8er/VirtualBoxVMs/Windows7/mount/disk


Где:
и


    /home/sk8er/VirtualBoxVMs/Windows7/mount/Partition1 - путь к файлу
password_encryption = on
    /home/sk8er/VirtualBoxVMs/Windows7/mount/disk - путь для монтирования


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


* [http://ubuntovod.ru/instructions/montirovanie-vdi-v-ubuntu.html взято тут...]
listen_addresses = '127.0.0.1, 192.168.1.1'


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


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


# установка необходимого приложения
Теперь мы должны определить кто из пользователей сети должен иметь доступ к серверу. Для этого в конец файла /etc/postgresql/8.3/main/pg_hba.conf дописываем строчку:
$ sudo apt-get install qemu-kvm


# загрузка модуля
  host    all        all        [ip адрес]          [маска подсети]  md5
  $ sudo modprobe nbd


# создание loopback устройства для образа
вместо [ip адрес] пишем айпи клиента в нашей сети, вместо [маска подсети] нашу маску подсети, например:
$ sudo qemu-nbd -c /dev/nbd0 [image].vdi


# монтируем разделы, которые доступны как /dev/nbd0pXXX
  host    all        all        192.168.1.2        255.255.255.0  md5
  $ sudo mount -o noatime,noexec /dev/nbd0p1 /tmp/vdi/


По завершению работы с образом необходимо отмантировать и выключить nbd.
если нужно задать целую подсеть — 192.168.1.0


$ sudo umount /tmp/vdi/
Перезапускаем сервер:
$ sudo qemu-nbd -d /dev/nbd0


* [http://andrey.fishchenko.name/linux/ubuntu-%D0%BC%D0%BE%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-vdi взято тут]
$ 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. Сам веб-интерфейс интуитивно понятен и у меня даже на русском языке по умолчанию :) правда не такой функциональный как хотелось бы. Здесь вы можете создать базу данных или пользователя, удалять, импортировать, редактировать и т.п. в зависимости от ваших привилегий и потребностей.
 
ИСТОЧНИКИ:
<hr>
* [https://eax.me/postgresql-install/ Начало работы с PostgreSQL]
* [https://postgrespro.ru/docs/postgresql/9.6/app-createuser.html PostgreSQL]
* [http://hutpu4.net/linux-open-source/postgresql-phppgadmin-for-debian-ubuntu.html Блог dоктора Dобрянского]

Версия от 22:49, 17 февраля 2018

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

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

ИСТОЧНИКИ: