Ruby on Rails c нуля! Postgresql установка на ubuntu


Установка PostgreSQL 9.1 на Ubuntu Linux

марта 27, 2012  |  Published in PostgreSQL, Базы данных  |  6 Comments

1. Открываем консоль и вбиваем  команду инсталяции:

$ sudo apt-get install postgresql-9.1 postgresql-server-dev-9.1

2. После того, как установка завершилась устанавливаем драйвер для Ruby:

$ gem install pgSuccessfully installed pg-0.13.2

3. Пробуем запустить консоль PostgreSQL:

$ psqlpsql: FATAL: role «vladimir» does not exist$ sudo psqlpsql: FATAL: role «root» does not exist

4. После неудачных попыток делаем следующее:

vladimir@rubydev:~$ sudo su postgrespostgres@rubydev:/home/vladimir$ psqlpsql (9.1.3)Type «help» for help.

postgres=# \dnList of schemasName | Owner———+———-public | postgres(1 row)

postgres=# \l

List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (3 rows)

5. Чтобы выйти из консоли выполняем команду \q:

postgres=# \qpostgres@rubydev:/home/vladimir$

6. Чтобы переключиться на прежднего пользователя выполняем команду exit:postgres@rubydev:/home/vladimir$ exitexitvladimir@rubydev:~$

Удачного пользования PostgreSQL!

rubydev.ru

Установка PostgreSQL 9.2 на Linux за 5 минут » Есть мнение

Добрый день, сейчас я расскажу Вам, как установить последнюю версию сервера баз данных PostgreSQL на Linux за 5 минут.

Все действия производятся на Linux с ОС семейства CentOS/Fedora/RHEL/Oracle Linux, из под пользователя root.

1) Заходим на официальный репозиторий http://yum.postgresql.org/repopackages.php, выбираем подходящий нам пакет и копируем ссылку на него.

Для меня это ветка PostgreSQL 9.2 (последняя на данный момент) и пакет CentOS 6 — x86_64 (версия моей ОС).

2) В консоли нашего сервера вбиваем простую команду для подключения этого репозитория.

rpm -i http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-5.noarch.rpm

В ответ Вы можете увидеть предупреждение такого плана:

warning: /var/tmp/rpm-tmp.efuoYm: Header V4 DSA/SHA1 Signature, key ID 442df0f8: NOKEY

Не обращаем на него внимание, оно предупреждает нас о том, что у пакета нет цифровой подписи.

3) И сам процесс установки — это выполнение одной команды в консоли сервера:

yum -y install postgresql92-server postgresql92-devel postgresql92 postgresql92-libs

4) Теперь нам необходимо создать структуру баз данных командой:

service postgresql-9.2 initdb

5) Добавляем наш сервер PostgreSQL в автозагрузку:

chkconfig postgresql-9.2 on

6) Стартуем наш сервер баз данных:

service postgresql-9.2 start

В процессе установки создается пользователь postgres, под которым и нужно работать с сервером БД.

В дальнейшем Вы сможете обновить Ваш сервер, а в том числе и PostgreSQL, командой:

yum update

estmnenie.com

Установка PostgreSQL 9.6 на Ubuntu 16.04

Что-то мне в последнее время честенько приходится ставить postgres. То на новый боевой сервер, то на свою персональную VPS, так что я решил написать заметочку на будущее. Авось и ещё кому-нибудь пригодится :) Процесс установки я буду описывать на голой системе (ubuntu 16.04), и все команды будут от root’а. Так работать, конечно, не принято - все мы знаем, что sudo наше всё, но здесь я ничем не рискую, а пользователя добавлю уже после описанного. Итак, поехали!

Установка PostgreSQL 9.6

Для начала установим сам сервер. Второй пакет опционален, но я предпочитаю ставить сразу и его, т.к. там находятся полезные расширения.

$ apt install postgresql postgresql-contrib

В процессе установки у меня возникла проблема с локалью, а именно ошибка “Error: The locale requested by the environment is invalid.“. Связано это с тем, что в системе не определены переменные LANGUAGE и LC_ALL. Для исправления их нужно прописать в /etc/default/locale:

$ echo 'LANGUAGE="en_US.UTF-8"' >> /etc/default/locale $ echo 'LC_ALL="en_US.UTF-8"' >> /etc/default/locale

После установки для логина доступен всего один пользователь - системный postgres:

$ su postgres -c psql [sudo] password for tyvik: psql (9.6.7) Type "help" for help. postgres=#

Но всё время заходить через него как-то не очень хорошо, к тому же это единственный способ подключения. Исправим настройки в файле /etc/postgresql/9.6/main/postgresql.conf, указав значения:

listen_addresses = '*' password_encryption = on

В процессе эксплуатации рекомендуется listen_addresses установить в localhost, т.е. разрешить только локальные подключения. При сканировании nmap’ом порт 5432 уйдёт из списка открытых. Но это ещё не всё :) отдельно надо указать ещё каким пользователям как именно можно подключаться в файле /etc/postgresql/9.1/main/pg_hba.conf. Для начала заветная строчка:

host all all 0.0.0.0/0 md5

Теперь разберём подробнее:

  • host - откуда идёт подключение. Бывает локальным (local) или сетевым (host)
  • all - список баз, к которым разрешено подключаться
  • all - список пользователей, которым разрешено подключаться
  • 0.0.0.0/0 - диапазон IP-адресов, с которых принимается подключение. У меня разрешены все IP.
  • md5 - метод авторизации. Самый популярный md5 - по хешированному паролю. Ещё также используется trust - без запроса пароля. На самом деле их гораздо больше, ещё есть: reject, password, gss, sspi, krb5, ident, peer, pam, ldap, radius, cert.

Теперь можно проверить подключения из pgAdmin или psql. Следующим шагом будет импорт данных.

Миграция

Проведём миграцию в 2 шага: экспорт уже существующей базы и импорт в новую. Экспорт делается командой pg_dump:

$ pg_dump -U$pg_login --password $pg_dbname > $path_to_archive/db.sql

у pg_dump есть ключ --format=format:

  • plain - генерация обычного SQL-файла (по умолчанию).
  • custom - то же, что и plain, но добавляет метки объектов для pg_restore. Можно указывать отдельные объекты.
  • directory - то же, что и custom, но каждый объект будет экспортироваться в отдельный файл.
  • tar - то же, что и directory, но сжатый tar’ом.

Обычно требуется не только сделать дамп данных, но и сохранить куда-нибудь в надёжное место. Так что почему бы сразу и не заархивировать его?

$ pg_dump -U$pg_login --password $pg_dbname --host=$host | gzip > dump.sql.gz

Теперь у нас есть дамп, подготовим новую базу и зальём туда данные. В консоли psql создадим пользователя и БД:

create user new_user with password 'pass'; create database user_db with owner new_user;

В командной строке выполним импорт:

$ psql -Unew_user -d user_db < db.sql

или

$ pg_restore -d user_db -U new_user db.sql

ну или если дамп сжат, то

$ gunzip -c dump.sql.gz | psql --username=$pg_login --password --host=$host $pg_dbname

Первая команда подходит для экспорта без ключа format или с его значением plain, вторая - во всех остальных случаях.

pg_dump

К слову, команда pg_dump имеет множество настроек, вот лишь небольшой список тех, которые мне доводилось применять:

  • --data-only - экспортировать только данные без DDL
  • --schema-only - экспортировать только DDL без данных
  • --schema=<> - выгрузить сразу несколько схем
  • --table=<> - выгрузить только отдельную таблицу
  • --disable-triggers - дописывает в экспорт команды по отключению триггеров и контроля целостности при восстановлении

tyvik.ru

welinux.ru / How-to`s — Установка PostgreSQL на Ubuntu 8.04

Оригинал Эта статья описывает установку сервера баз данных PostgreSQL и программу администрирования PgAdmin в Ubuntu Linux, а также настройку сервера для работы в сети.

Перед тем, как мы начнём, замечание: это хау-ту тестировалось с текущим релизом Ubuntu Linux (8.04 - Hardy Heron) и PostgreSQL 8.3, но оно также должно быть применимо для более старых версий (Ubuntu и PostgreSQL) и других Debian-based дистрибутивов.

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

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

(Прим. переводчика: можно написать короче:

$ sudo aptitude install postgresql{,-client,-contrib} pgadmin3
)

Эти команды установят сервер и клиент БД, некоторые дополнительные скрипты и графическую утилиту pgAdmin для работы с БД.

Теперь нам необходимо переустановить пароль админского аккаунта ‘postgres’ сервера, чтобы мы могли использовать его для задач системного администрирования. Введите в командной строке (подставьте вместо password пароль, который вы хотите использовать):

$ sudo su postgres -c psql template1
template1=# ALTER USER postgres WITH PASSWORD 'password'; template1=# \q

(Прим. переводчика: также можно создать пользователя, имя которого совпадает с вашим логином в линуксе, тогда можно будет запускать клиент так:

)

Эти команды изменяют пароль внутри БД, теперь нам необходимо сделать тоже самое с unix пользователем ‘postgres’:

$ sudo passwd -d postgres $ sudo su postgres -c passwd

Введите тот же пароль, который вы использовали в прошлый раз.

Теперь мы можем использовать и программу pgAdmin, и консольный клиент (от пользователя postgres), чтобы работать с сервером БД. Но, перед запуском pgAdmin, мы должны установить админский пакет PostgreSQL, который включит лучшее логгирование и мониторинг в pgAdmin. Запустите следующую команду:

$ sudo su postgres -c psql < /usr/share/postgresql/8.3/contrib/adminpack.sql

Наконец, нам необходимо настроить сервер для работы в сети, иначе он будет доступен только с локальной машины. Чтобы сделать это, сначала необходимо отредактировать файл postgresql.conf:

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

Теперь измените строки в секции ‘Connections and Authentication’…

Замените строку:

#listen_addresses = 'localhost'

на

listen_addresses = '*'

и, также, замените строку

#password_encryption = on

на

password_encryption = on

Сохраните файл и закройте gedit.

Последний шаг -- мы должны определить, кто должен иметь доступ к серверу. Это настраивается с помощью файла pg_hba.conf file. (Этот шаг можно также сделать с помощью последних версий pgAdmin (1.6.x), плюс вам даже нет необходимости вычислять IP адреса и маски подсетей. Но это не исключает необходимости знать, как это работает.)

$ sudo gedit /etc/postgresql/8.3/main/pg_hba.conf

Закомментируйте или удалите текущее содержимое файла, потом вставьте следующий текст в конец файла:

# НЕ ИЗМЕНЯЙТЕ ПЕРВУЮ ЗАПИСЬ!

# Если вы измените эту первую запись, вам необходимо убедиться, что

# админ БД сможет получить доступ другим способом.

# Неинтерактивный доступ ко всем базам данных необходим для

# автоматического обслуживания

# (автовакуум, дневные задачи cron, репликация и подобные задачи).

#

# Административный вход с помощью сокетов UNIX

local all postgres ident sameuser

# TYPE DATABASE USER CIDR-ADDRESS METHOD

# "local" - только для соединений через сокеты Unix

local all all md5

# IPv4 локальные соединения:

host all all 127.0.0.1/32 md5

# IPv6 локальные соединения:

host all all ::1/128 md5

# Связь для все ПК в подсети

#

# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD

host all all md5

и в последней строке добавьте вашу маску подсети (например, 255.255.255.0) и IP адрес машины, которой нужен доступ к вашему серверу (например, 138.250.192.115). Если вам необходимо дать доступ диапазону IP адресов, подставьте вместо последнего числа 0 (например, 138.250.192.0 даст доступ к серверу всем машинам с IP адресами 138.250.192.x).

Всё, теперь перезапустите сервер:

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

И всё должно работать.

welinux.ru