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)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:
После установки для логина доступен всего один пользователь - системный 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’ом.
Обычно требуется не только сделать дамп данных, но и сохранить куда-нибудь в надёжное место. Так что почему бы сразу и не заархивировать его?
Теперь у нас есть дамп, подготовим новую базу и зальём туда данные. В консоли 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