logo Оренда жилья Севастополь Меню

Установка и легкая настройка postgresql через консоль и программу yum для начинающих.

Проверяем, установлен ли postgresql, для этого в консоли набираем:
	#su root вводим пароль пользователя root 
	# yum info postgresgl    
В результате увидим, вывод :

2

Если вывод выглядит, как у меня на картинке, то postgresql установлен. Если нет «Repo : installed» , то придется установить. Стоит обратить внимание, на то что, если вы устанавливали posgresql вместе с осью сразу, то в некоторых дистрибутивах за вас уже все сделали и инициализировать базу не нужно, пропускаем эти манипуляции ! Остается только настроить под себя, создать пароль на локального пользователя postgres и создать пароль на администратора базы данных postgres, через утилиту «psql», описание процедуры находится ниже. Вернемся к установке, в консоли от root , вводим :
	#yum install  postgresql    
	#yum install qt3-PostgreSQL
установив все зависимости , yum спросит про установить или нет , отвечаете «Y» , пакеты установятся. В самом низу будет виден результат. Вообще , если есть необходимость использовать весь пакет postgresql, то рекомендую установить его так :
	#yum install  postgresql* 
	#yum install qt3-PostgreSQL    
В результате будет установлены все пакеты, начинающиеся на имя «postgresql» и пакет «qt3-PostgreSQL». Все делается от пользователя root. Убеждаемся всегда о положительном завершении процедуры установки. Теперь у вас проинсталлирован postgresql, но не стоит спешить его запускать, даже если он и запуститься по команде
	#service postgresql start    
То скорей всего, выдаст ошибку, так как мы еще не создали «template1» базы. От греха подальше перегружаем систему, смотрим, что у нас стартует, выдает ошибки или нет. Убедившись , что установка не внесла проблемных изменений, конфликтов и возвращаемся крутить postgresql дальше. Необходимо инициализировать сервер и базы данных для работы с ними от пользователя postgres.
	#su root вводим пароль пользователя root
Переходим в каталог var/lib/pgsql/data , для этого вводим:
	#cd /var/lib/pgsql/data/    
	#ls (вывод имеющихся файлов )
Если в этой папке присутствуют, какие нить файлы, базы данных, то лучше все зачистить, для большей наглядности рекомендую это сделать с помощью файлового менеджера «MC»:
	#mc /var/lib/pgsql/data/ Переходим в каталог, выделяем все файлы с помощью клавиши "Insert" и нажимаем "F8".
Если «MC» еще не установлен, то рекомендую его проинсталлировать , так как для начинающего пользователя это палка-выручалка номер один !!! Тем более что установить его не сложно:
	#yum install mc (он вам еще пригодится, особенно если не стоит ни каких Х-ов) 
Входим в консоль пользователем «postgres», который был автоматически создан при установке и вводим команду создания необходимых файлов баз данных и инициализации сервера.
	#su postgres    
	bash-4.1$initdb -D /var/lib/pgsql/data    
Получится вывод как на скрине:

2

Базы данных инициализируются для пользователя «postgres»!!! Не думаю, что вы часто будете сидеть под пользователем «root», это не совсем корректно! После рекомендую запустить «Postgresql» через команду от root:
	#service postgresql start     
Вывод должен быть положительным ! Так сразу будет ясно, стартанет ли наш сервер при загрузке системы. Добавим в автозагрузку , для наглядности , через команду:
	#setup 

3 4 5

Установим пароль для локального пользователя «postgres»:
	#passwd postgres     
Пароль рекомендую установить ! И чем сложней, тем лучше, это поможет вам избежать некоторых проблем с безопасностью! )))
Смена пароля администратора баз данных postgres, пароль администратора должен быть установлен, иначе сторонние приложения не будут взаимодействовать с базами данных, да и безопасности прибавит, что не лишне при работе с серверами баз данных:
	#su postgres     
	bash-4.1$psql     
	postgres=#\password postgres     
Не забываем подправить конфиг под себя ! Дело в том, что по умолчанию нет аутентификации локальных пользователей, а так же нет возможности использовать posgresql server для сетевого использования. Локальные пользователи подключаются свободно, что необходимо подправить. Открываем для редактирования конфигурационный файл /var/lib/pgsql/data/pg_hba.conf и приводим его в такой вид , как на картинке:

6

 

Теперь локальные пользователи проходят аутентификацию по паролю в md5 . Если необходимо , чтобы к серверу подключались из сети или определенного узла, то добавляем свои правила подобные локальным пользователям. Стоит лишний раз подумать про безопасность соединении к базе, так как если не шифровать трафик, то он спокойно может быть перехвачен. Ну и фаервол (на Федоре это iptables , мощный и могучий, главное держать талмут под рукой и понимать как он работает) стоит под настроить , под доступ к серверу баз данных только с тех хостов , которым он разрешен.
Для более глубокого изучения рекомендую хорошо погуглить данный вопрос, а лучше почитать полную документацию на http://postgresql.ru.net/. С помощью данной статьи вы получаете работоспособный postgresql, а статья используется мной как напоминалака в случаи, когда что то позабылось ). Для соответствующих программ нужно установить соответствующие модули, обычно описаны в readme к программе. Успешной вам настройки и использования pstgresql.

Создание нового пользователя и управление его правами.

Добавить нового пользователя можно командой :
	postgres=#CREATE USER имя_пользователя PASSWORD 'пароль'; (в ответ: «CREATE ROLE», что говорит о положительном результате).
Если есть надобность сделать обычного пользователя «суперпользователем» , то вводим
	postgres=#ALTER USER 'имя_пользователя' SUPERUSER; (в случае успеха получаем ответ ALTER ROLE).
Отменяем права супер пользователя:
	postgres=#ALTER USER 'имя_пользователя' NOSUPERUSER; (в случае успеха получаем ответ ALTER ROLE).
"ALTER USER" очень полезная команда, она позволяет выставить права пользователям, те , которые они заслужили. Далее чуть приведу информации по данному аператору с "postgresql.ru.net", которая понадобится почти каждому, да и вообщем очень рекомендую ознакомиться с содержанием данного сайта, особенно если решили серьезно заняться этим делом ) .
ALTER USER

   ALTER USER Имя_пользователя [ [ WITH ] option [ ... ] ]
 SUPERUSER | NOSUPERUSER - Как говорилось выше , дать или отнять прова суперпользователя.
 CREATEDB | NOCREATEDB - Дать разрешение создавать или запретить создавать базы данных пользователю.
 CREATEROLE | NOCREATEROLE - Дать пользователю возможность создавать роли доступа.
 CREATEUSER | NOCREATEUSER - Дать возможность пользователю создавать других пользователей или отнять данную привилегию. 
 ALTER USER Имя_пользователя RENAME TO Новое _имя_пользователя - Переименовать одного пользователя в другого.
Проверяем наличие пользователей, которые могут работать с базами данных:
	postgres=#\du (в выводе будет список пользователей с их разрешениями). 
Вход под желанным пользователем, по умолчанию вход производится от пользователя «postgresql»:
	bash-4.1$psql –U имя_пользователя     

Создание базы данных и управление ими.

Создание базы данных можно сделать двумя способами:
1. Меняем пользователя на Postgres:
	#su postgres
	bash-4.1$createdb Имя_создаваемой_базы
	bash-4.1$exit  
2. Надо сменить пользователя на Postgres и запустить утилиту psql.
	#su postrges
	bash-4.1$psql  
	postgres=#CREATE DATABASE имя_базы ;    
Вывод существующих баз данных производится по команде:
	postgres=#\l     
Для того чтобы созданный пользователь мог работать с определенной базой данных , нужно изменить права доступа к данной базе данных и дабы все происходило нормально отдать эту базу данных во владения этому пользователю! Проделываем следующие шаги:
	postgres=#\q   (выход из утилиты psql , если вы еще не выходили) 
Следующая команда выполняется от пользователя «postgres», так что если что входим :
	#su postgres     
	bash-4.1$psql имя_базы    (вход в утилиту с редактированием нужной базы данных) 
	здесь будет имя базы=# GRANT ALL PRIVILEGES ON DATABASE имя_базы TO имя_пользователя;    
	Ответ : GRANT 
	postgres=#\q
	bash-4.1$psql
	postgres=#ALTER DATABASE имя_базы_данных owner to Имя_пользователя кому отдать базу данных ;
	postgres=#\l - Смотрим вывод и кому чего принадлежит.  
После данных действий пользователь получает права на базу данных и получает ее в свое пользование. Обычно этого с головой достаточно. Не забываем ставить знак « ; », там, где он стоит у меня при вводе команд, если вдруг подзабыли или пропустили – не страшно, поставьте на следующей строке и нажмите ввод. Выйти из утилиты psql можно командой:
	postgres=#\q   
Удаление ненужной базы данных:
	#su postgres
	bash-4.1$ dropdb Имя_удоляемой_базы_данных
или
	bash-4.1$ psql
	postgres=# DROP DATABASE Имя_удаляемой базы данных; в ответ "DROP DATABASE"
Бывает ситуация, когда по какой то причине захотелось глянуть, а не появилось ли в базе данных каких нить данных ), и нам на помощь прийдет:
	#su postgres
	bash-4.1$psql Имя_Базы_данных
	Сдесь_будет_имя_базы_данных =#  \d - и мы получаем вывод таблиц из данной базы данных.  

Резервное копирование и восстановление отдельных баз данных.

Резервная копия отдельной базы данных производится с помощью "pg_dump".
Утилита очень проста в использовании, но перед использованием нужно создать каталог для резервных копий и дабы не путаться создать отдельную папку для резервного копирования индивидуальной базы.
	#mkdir /home/rezervdb
	#mkdir /home/rezervdb/Имя_базы_данных
	#chown -R postgres: /home/rezervdb

Так как мы не работаем под пользователем root с базами данных , то входим под пользователем postgres:
	#su postgres
	pg_dump Имя_базы_данных > /home/rezervdb/Имя_базы_данных/Имя_базы.pgdump
Вводим пароль пользователя postgres, после чего проверяем создания копии базы:
	bash-4.1$cd /home/rezervdb/Имя_базы_данных/
	bash-4.1$ls - В выводе видим нашу свеж созданную копию базы данных.
Восстановить, переименовать, переместить проще простого : bash-4.1$ cat /home/Имя_базы_данных/Имя_базы.pgdump | psql Имя_базы
Если нам нужно создать и сразу заархивировать копию базы данных, что бывает очень полезно при больших по объему базах данных, то используем стандартные средства:
	bash-4.1$pg_dump Имя_базы_данных | gzip > /home/rezervdb/Имя_базы_данных/Имя_базы.dump.gz
Восстанавление, переименование, перемещение:
	bash-4.1$gunzip -c /home/rezervdb/Имя_базы_данных/Имя_базы.dump.gz | psql Имя_базы_данных_в_которую_востанавливаем

Резервное копирование и восстановление всего в один клик ).

	# mkdir /home/rezervdb/postgres
	#chown -R postgres: /home/rezervdb
	#su postgres
	bash-4.1$pg_dumpall > /home/rezervdb/postgres/db.out

Для востановления:
	#su postgres
	bash-4.1$psql -f /home/rezervdb/postgres/db.out postgres
И на последок , если вы запутались, ни кто не отменял помощь из консоли ))) :
	postgres-#\? 
Выведит помощь по командам и их синтаксису, а ввод допустим:
	postgres-#\h CREATE 
выведит помощь для всех команд с данным названием.

 



Оренда жилья Севастополь Меню

 

Все материалы на данном сайте принадлежат автору ©vml
и не могут без разрешения использоваться в каких либо целях,
кроме как просмотра на данном сайте, а в случае размещения на других
ресурсах - должны содержать ссылку на первоисточник http://sevsait.com !!!

Помните, сайт является интеллектуальной собственностью !!!

Автор: VML