Поиск по сайту:

Как установить и использовать PostgreSQL на CentOS 6


Статус: устарело

В этой статье рассматривается версия CentOS, которая больше не поддерживается. Если вы в настоящее время используете сервер под управлением CentOS 6, мы настоятельно рекомендуем обновить или перейти на поддерживаемую версию CentOS.

Причина:

Смотрите вместо этого:

Следующий учебник DigitalOcean может представлять интерес, так как в нем описывается установка PostgreSQL на сервере CentOS 7:

  • Как установить и использовать PostgreSQL в CentOS 7

Введение

PostgreSQL, обычно называемая «postgres», является популярной системой управления базами данных, которая использует язык запросов SQL для манипулирования данными.

В этом руководстве мы расскажем, как установить и использовать postgres на CentOS VPS.

Как установить PostgreSQL

Хотя CentOS содержит пакеты postgres в репозиториях по умолчанию, мы будем использовать пакеты, доступные в самом проекте postgres.

Это гарантирует, что у нас будет доступ к последней версии программного обеспечения без необходимости установки из исходного кода.

Исключить пакеты CentOS Postgres

Перед установкой postgres мы должны исключить версию postgres для CentOS, чтобы получить самую последнюю версию с веб-сайта проекта.

Откройте файл конфигурации репозитория CentOS в текстовом редакторе:

nano /etc/yum.repos.d/CentOS-Base.repo

В нижней части раздела [base] добавьте строку, исключающую пакеты postgres:

<пред>

Добавьте ту же строку в конец раздела [updates], чтобы запретить yum обновлять postgres из репозиториев по умолчанию:

<пред>

Добавляем репозиторий Postgres

Теперь мы сказали yum не беспокоиться о репозиториях по умолчанию для взаимодействия с пакетами postgres.

Мы должны предоставить ему альтернативу сейчас. Мы будем использовать пакеты, представленные на веб-сайте проекта postgres.

Перейдите на сайт, чтобы найти последнюю версию postgres, доступную для вашей версии CentOS.

Удерживая нажатой клавишу Control, или щелкните правой кнопкой мыши ссылку, которая соответствует самой последней версии postgres и вашей версии CentOS. Выберите «Копировать адрес ссылки» или любой другой доступный вариант.

Вернувшись в сеанс дроплета, перейдите в свой домашний каталог. Введите curl -O и вставьте ссылку для скачивания:

<пред>

Установите только что загруженный пакет, введя следующую команду:

rpm -ivh pgdg*

Это позволит вашей системе получить пакет postgres с веб-сайта проекта.

Мы можем сделать это сейчас, чтобы получить последнюю версию. Эти пакеты содержат нумерацию версий, поэтому вам нужно будет найти, какая версия используется:

yum list postgres*
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.linux.duke.edu
 * extras: mirror.linux.duke.edu
 * updates: mirrors.kernel.org
Installed Packages
postgresql93.x86_64                  9.3.1-1PGDG.rhel6        @pgdg93
postgresql93-libs.x86_64             9.3.1-1PGDG.rhel6        @pgdg93
postgresql93-server.x86_64           9.3.1-1PGDG.rhel6        @pgdg93
Available Packages
postgresql93-contrib.x86_64          9.3.1-1PGDG.rhel6        pgdg93 
postgresql93-debuginfo.x86_64        9.3.1-1PGDG.rhel6        pgdg93

Мы видим, что в этом случае все пакеты имеют «93» для версии 9.3. Мы хотим загрузить пакеты «-сервер»:

yum install postgresql93-server

Измените «93» на любую текущую версию postgres для вашей системы в остальной части этого руководства.

Инициализировать среду базы данных

Вы можете инициализировать среду базы данных, набрав:

service postgresql-9.3 initdb

Затем мы настроим его для запуска при загрузке и запустим программное обеспечение:

chkconfig postgresql-9.3 on
service postgresql-9.3 start

Теперь мы готовы начать использовать postgres.

Как войти в базу данных Postgres

По умолчанию postgres создает пользователя и базу данных с именем postgres.

Схема безопасности по умолчанию предполагает, что пользователь postgres будет доступен только тем, кому он нужен. Это можно контролировать, настроив правила sudo.

Мы взаимодействуем с программным обеспечением базы данных postgres через интерфейс под названием psql. Он предоставляет подсказку, где мы можем манипулировать и запрашивать данные.

На данный момент войдите в систему пользователя postgres следующим образом:

su - postgres

Ваша подсказка изменится. Теперь вы можете подключиться к базе данных, которая соответствует вашему имени пользователя, набрав:

psql

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

Если вам нужно выйти из этого интерфейса, вы можете ввести это в любое время:

\q

После этого, чтобы вернуться в оболочку пользователя root, вы можете ввести:

exit

Некоторые полезные команды psql

Вот несколько команд, которые могут помочь вам получить представление о вашей текущей среде:

  • ?: Получить полный список команд psql, включая те, которые здесь не перечислены.
  • \h: получить справку по командам SQL. Вы можете выполнить это с помощью специальной команды, чтобы получить помощь по синтаксису.
  • \q: Закройте программу psql и выйдите в командную строку Linux.
  • \d: Список доступных таблиц, представлений и последовательностей в текущей базе данных.
  • \du: Список доступных ролей
  • \dp: Список привилегий доступа
  • \dt: Список таблиц
  • \l: Список баз данных
  • \c: подключиться к другой базе данных. Следуйте за этим по имени базы данных.
  • \password: измените пароль для следующего имени пользователя.
  • \conninfo: получить информацию о текущей базе данных и соединении.

Создайте таблицу Postgres

Мы можем создавать таблицы в postgres, используя следующий синтаксис:

<пред>

Мы создадим таблицу под названием «Эскимо», чтобы хранить наши разновидности эскимо и некоторую информацию о них.

CREATE TABLE popsicles (
    pop_id serial PRIMARY KEY,
    flavor varchar (50) NOT NULL,
    amount int NOT NULL,
    size varchar (10) check (size in ('small', 'normal', 'large'))
);

Теперь мы можем использовать команду \dt для просмотра таблицы:

\dt
           List of relations
 Schema |   Name    | Type  |  Owner   
--------+-----------+-------+----------
 public | popsicles | table | postgres
(1 row)

Чтобы увидеть столбцы и структуру данных, которые мы только что определили, мы можем ввести эту команду:

\d popsicles
                                  Table "public.popsicles"
 Column |         Type          |                         Modifiers  
                        
--------+-----------------------+------------------------------------
------------------------
 pop_id | integer               | not null default nextval('popsicles
_pop_id_seq'::regclass)
 flavor | character varying(50) | not null
 amount | integer               | not null
 size   | character varying(10) | 
 . . .

Вставка данных в таблицу Postgres

Теперь у нас есть таблица в нашей базе данных, но в ней еще нет данных. Мы можем заполнить его с помощью команды insert.

Мы вводим INSERT INTO, а затем имя таблицы. Затем мы вводим разделенный запятыми список имен столбцов внутри набора круглых скобок. Затем мы вводим VALUES, а затем второй набор круглых скобок, содержащий список значений, разделенных запятыми, которые соответствуют именам столбцов.

Давайте попробуем сейчас. Мы вставим в нашу таблицу немного виноградного эскимо:

INSERT INTO popsicles (flavor, amount, size) VALUES ('grape', 10, 'normal');
INSERT 0 1

INSERT 0 1 означает, что наша команда была принята успешно. В отношении этой команды следует обратить внимание на то, что слова в нашем списке значений заключены в одинарные кавычки(), а команда заканчивается точкой с запятой (;). Оба эти момента важно помнить.

Еще одна вещь, на которую следует обратить внимание, это то, что мы не установили столбец pop_id. Это потому, что мы определили его как первичный ключ. В этом столбце должны быть уникальные значения для каждой записи, поэтому postgres будет автоматически назначать следующее доступное значение каждой созданной нами записи.

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

INSERT INTO popsicles (flavor, amount, size) VALUES ('orange', 8, 'small');
INSERT INTO popsicles (flavor, amount, size) VALUES ('fudge', 20, 'large');
INSERT INTO popsicles (flavor, amount, size) VALUES ('eclair', 14, 'normal');
INSERT INTO popsicles (flavor, amount, size) VALUES ('rainbow', 4, 'small');

Если вы помните, когда мы создавали таблицу, мы определили допустимые значения для столбца «размер». Postgres проверяет, является ли значение «маленьким», «нормальным» или «большим». Что произойдет, если мы попытаемся предоставить другое значение?:

INSERT INTO popsicles (flavor, amount, size) VALUES ('lime', 6, 'huge');
ERROR:  new row for relation "popsicles" violates check constraint "popsicles_size_check"
DETAIL:  Failing row contains (6, lime, 6, huge).

Как видите, postgres подтвердил, что мы ввели правильные данные. Он отклонил наше новейшее эскимо, потому что у него не было одного из значений, которые мы определили для размера.

Выберите данные из таблицы Postgres

Мы можем запросить данные в нашей новой таблице с помощью команды select. Команда select возвращает данные из таблицы, соответствующие заданным критериям.

Чтобы вернуть всю информацию из нашей таблицы, мы можем использовать звездочку (*), которая является специальным символом, означающим «сопоставить все»:

SELECT * FROM popsicles;
 pop_id | flavor  | amount |  size  
--------+---------+--------+--------
      1 | grape   |     10 | normal
      2 | orange  |      8 | small
      3 | fudge   |     20 | large
      4 | eclair  |     14 | normal
      5 | rainbow |      4 | small
(5 rows)

Мы можем выбрать по столбцу, заменив звездочку на нужные столбцы:

SELECT flavor, amount FROM popsicles;
 flavor  | amount 
---------+--------
 grape   |     10
 orange  |      8
 fudge   |     20
 eclair  |     14
 rainbow |      4
(5 rows)

Если мы хотим отфильтровать только определенные результаты, мы можем добавить фильтр where в конце:

SELECT * FROM popsicles WHERE amount <= 10;
 pop_id | flavor  | amount |  size  
--------+---------+--------+--------
      1 | grape   |     10 | normal
      2 | orange  |      8 | small
      5 | rainbow |      4 | small
(3 rows)

Заключение

Теперь у вас должен быть установлен postgres в вашей системе и вы хорошо разбираетесь в его основном использовании.

Есть много других вещей, которые нужно изучить при работе с postgres. Вы можете изучить другие наши статьи, чтобы узнать, как управлять

Джастин Эллингвуд