Как узнать версию postgresql windows

Утилиты (программы) PosgreSQL:

  • createdb и dropdb – создание и удаление базы данных (соответственно)
  • createuser и dropuser – создание и пользователя (соответственно)
  • pg_ctl – программа предназначенная для решения общих задач управления (запуск, останов, настройка параметров и т.д.)
  • postmaster – многопользовательский серверный модуль PostgreSQL (настройка уровней отладки, портов, каталогов данных)
  • initdb – создание новых кластеров PostgreSQL
  • initlocation – программа для создания каталогов для вторичного хранения баз данных
  • vacuumdb – физическое и аналитическое сопровождение БД
  • pg_dump – архивация и восстановление данных
  • pg_dumpall – резервное копирование всего кластера PostgreSQL
  • pg_restore – восстановление БД из архивов (.tar, .tar.gz)

Примеры создания резервных копий:

Создание бекапа базы mydb, в сжатом виде

pg_dump -h localhost -p 5440 -U someuser -F c -b -v -f mydb.backup mydb

Создание бекапа базы mydb, в виде обычного текстового файла, включая команду для создания БД

pg_dump -h localhost -p 5432 -U someuser -C -F p -b -v -f mydb.backup mydb

Создание бекапа базы mydb, в сжатом виде, с таблицами которые содержат в имени payments

pg_dump -h localhost -p 5432 -U someuser -F c -b -v -t *payments* -f payment_tables.backup mydb

Дамп данных только одной, конкретной таблицы. Если нужно создать резервную копию нескольких таблиц, то имена этих таблиц перечисляются с помощью ключа -t для каждой таблицы.

pg_dump -a -t table_name -f file_name database_name

Создание резервной копии с сжатием в gz

pg_dump -h localhost -O -F p -c -U postgres mydb | gzip -c > mydb.gz

Список наиболее часто используемых опций:

  • -h host — хост, если не указан то используется localhost или значение из переменной окружения PGHOST.
  • -p port — порт, если не указан то используется 5432 или значение из переменной окружения PGPORT.
  • -u — пользователь, если не указан то используется текущий пользователь, также значение можно указать в переменной окружения PGUSER.
  • -a, —data-only — дамп только данных, по-умолчанию сохраняются данные и схема.
  • -b — включать в дамп большие объекты (blog’и).
  • -s, —schema-only — дамп только схемы.
  • -C, —create — добавляет команду для создания БД.
  • -c — добавляет команды для удаления (drop) объектов (таблиц, видов и т.д.).
  • -O — не добавлять команды для установки владельца объекта (таблиц, видов и т.д.).
  • -F, —format {c|t|p} — выходной формат дампа, custom, tar, или plain text.
  • -t, —table=TABLE — указываем определенную таблицу для дампа.
  • -v, —verbose — вывод подробной информации.
  • -D, —attribute-inserts — дамп используя команду INSERT с списком имен свойств.

Бекап всех баз данных используя команду pg_dumpall.

pg_dumpall > all.sql

Восстановление таблиц из резервных копий (бэкапов):

psql — восстановление бекапов, которые хранятся в обычном текстовом файле (plain text);
pg_restore — восстановление сжатых бекапов (tar);

Восстановление всего бекапа с игнорированием ошибок

psql -h localhost -U someuser -d dbname -f mydb.sql

Восстановление всего бекапа с остановкой на первой ошибке

psql -h localhost -U someuser —set ON_ERROR_STOP=on -f mydb.sql

Для восстановления из tar-арихива нам понадобиться сначала создать базу с помощью CREATE DATABASE mydb; (если при создании бекапа не была указана опция -C) и восстановить

pg_restore —dbname=mydb —jobs=4 —verbose mydb.backup

Восстановление резервной копии БД, сжатой gz

gunzip mydb.gz
psql -U postgres -d mydb -f mydb

ЖЕЛЕЗО

Мы подумали и я решил купить добротный современный компьютер на базе Ryzen 5 2600X (была мысль 2700Х купить, но трезво оценив, что 10-ти пользователям достаточно 4-х ядер, я пошел на компромис — 6-ядерный высокочастотный процессор будет не хуже топового, но при этом на 10к дешевле). В итоге взял достаточно простой (если  можно так считать) корпус со стеклянными стенками (фронтальная и боковушка), блок питания с сертификатом 80 PLUS не ниже GOLD и не меньше 500 Вт, мать на базе AMD B450, хороший SSD для системы и базы, и 2 потоковых диска в RAID1 для бэкапов (отлично подошли диски для медиасерверов). Также система была укомплектована 2-мя планками памяти по 8 Гиб (общей емкостью в 16 Гиб) из списка совместимых.

Общий бюджет — 65 килорублей + 620 рублей доставка до соседнего подъезда, в котором находится отделение транспортной компании.

Заказал я все это 1-го апреля, 2-го получил счет, через пару дней его оплатили, а еще через день он уже стоял в соседнем подьезде криво собранный специалистами поставщика (им, видимо, никто не сказал, что память нужно в B1/B2 ставить, а не в A1/B1 — но это мелочи).

Настройка PostgreSQL в Ubuntu 20.04

После установки СУБД откройте терминал и переключитесь на пользователя postgres с помощью команды:

Эта учетная запись создается во время установки программы и на данный момент вы можете получить доступ к системе баз данных только с помощью нее. По умолчанию PostgreSQL использует концепцию ролей для аутентификации и авторизации.

Это очень похоже на учетные записи Unix, но программа не различает пользователей и групп, есть только роли. Сразу после установки PostgreSQL пытается связать свои роли с системными учетными записями, если для имени системной учетной записи существует роль, то пользователь может войти в консоль управления и выполнять позволенные ему действия. Таким образом, после переключения на пользователя postgres вы можете войти в консоль управления:

И посмотреть информацию о соединении:

Чтобы выйти наберите:

Теперь рассмотрим, как создать другие роли и базы данных.

Создание роли postgresql

Вы уже можете полноценно работать с базой данных с помощью учетной записи postgres, но давайте создадим дополнительную роль. Учетная запись postgres является администратором, поэтому имеет доступ к функциям управления. Для создания пользователя выполните команду:

Скрипт задаст лишь два вопроса, имя новой роли и нужно ли делать ее суперпользователем.

Создание базы данных

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

Дальше, чтобы подключиться к этой базе данных нам нужно войти от имени одноименного пользователя:

Заходим в консоль и смотрим информацию о подключении:

Все верно сработало. Мы подключились с помощью роли alex к базе alex. Если нужно указать другую базу данных, вы можете сделать это с помощью опции -d, например:

Все сработало верно, при условии, что все компоненты были настроены как описано выше.

Создание таблиц

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

CREATE TABLE имя_таблицы (имя_колонки1 тип_колонки (длина) ограничения, имя_колонки2 тип_колонки (длина), имя_колонки3 тип_колонки (длина));

Как видите, сначала мы задаем имя таблицы, затем описываем каждый столбец. Столбец должен иметь имя, тип и размер, также можно задать ограничения для данных, которые там будут содержаться. Например:

Мы создали таблицу детской площадки для описания оборудования, которое на ней есть. Сначала идет идентификатор equip_id, который имеет тип serial, это значит, что его значение будет автоматически увеличиваться, ключ primary key значит, что значения должны быть уникальны.

Следующие колонки — обычные строки, для них мы задаем длину поля, они не могут быть пустыми (NOT NULL). Следующий столбец тоже строка, но она может содержать только одно из указанных значений, последний столбец — дата создания.

Вы можете вывести все таблицы, выполнив команду:

Здесь мы видим, что кроме нашей таблицы, существует еще одна переменная -playground_equip_id_seq. В ней содержится последнее значение этого поля. Если нужно вывести только таблицы, выполните:

×

Настройка PostgreSQL 13 в Ubuntu Server 20.04

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

Создание пользователя и базы данных в PostgreSQL

После установки к серверу PostgreSQL мы можем подключиться только с помощью системного пользователя postgres, причем без пароля.

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

   
   su - postgres

Затем запускаем утилиту psql – это консоль для PostgreSQL.

   
   psql

Первым делом нам нужно задать пароль для пользователя postgres.

   
   \password postgres

Затем создаем нового пользователя на сервере PostgreSQL, так как работать от имени postgres крайне не рекомендуется.

   
   create user info_comp with password '123456';

где info_comp – это имя пользователя, ‘123456’ – это его пароль, Вы, соответственно, придумываете и подставляете свои данные.

Далее давайте создадим базу данных.

   
    create database test_db;

где test_db – это имя новой базы данных.

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

   
   grant all privileges on database test_db to info_comp;

Все готово, выходим из консоли.

   
    \q

Для проверки давайте подключимся к PostgreSQL от имени нового пользователя, на предложение о вводе пароля вводим пароль от новой учетной записи.

   
    psql -h localhost test_db info_comp

Все работает, я подключился. Для выхода снова набираем \q.

   
    \q

Для переключения обратно на root вводим exit.

   
    exit

Разрешаем подключение к PostgreSQL по сети

По умолчанию PostgreSQL прослушивает только адрес localhost, поэтому, для того чтобы мы могли подключаться по сети, нам нужно указать, какие сетевые интерфейсы будет просушивать PostgreSQL. Я для примера укажу, что прослушивать нужно все доступные интерфейсы. Если у Вас несколько сетевых интерфейсов, и Вы хотите, чтобы PostgreSQL использовал только один конкретный, то Вы его можете указать именно здесь.

Чтобы это сделать, открываем файл postgresql.conf, например, редактором nano.

   
    nano /etc/postgresql/13/main/postgresql.conf

Находим следующую строку.

   
     #listen_addresses = 'localhost'

и вносим следующие изменения (вместо звездочки Вы в случае необходимости указываете IP адрес нужного интерфейса).

   
    listen_addresses = '*'

Сохраняем изменения сочетанием клавиш CTRL+O и подтверждаем нажатием Enter, затем просто закрываем редактор nano сочетанием клавиш CTRL+X.

Теперь давайте разрешим подключение из сети, я для примера разрешу подключаться из сети 192.168.0.0/24 с методом аутентификации md5.

Для этого открываем файл pg_hba.conf

   
    nano /etc/postgresql/13/main/pg_hba.conf

Ищем следующие строки.

И указываем нужную нам сеть (если IPv6 Вы не будете использовать, то можете закомментировать соответствующие строки знаком #).

Далее точно так же сохраняем изменения сочетанием клавиш CTRL+O, подтверждаем нажатием Enter и закрываем редактор nano сочетанием клавиш CTRL+X.

Перезапускаем PostgreSQL, чтобы изменения вступили в силу.

   
    systemctl restart postgresql

Теперь можно подключаться к нашему серверу PostgreSQL удаленно по сети.

Таким образом, мы установили и настроили систему управления базами данных PostgreSQL 13 на операционной системе Ubuntu Server 20.04.

В следующем материале мы рассмотрим процесс установки на клиентский компьютер инструментов для работы с базами данных PostgreSQL и настроим удаленное подключение к PostgreSQL 13.

Using pgAdmin III GUI

To get an idea of what PostgreSQL can do, you may start by firing up a graphical client. In a terminal type :

 pgadmin3

You will be presented with the pgAdmin III interface. Click on the «Add a connection to a server» button (top left). In the new dialog, enter the address 127.0.0.1 (Local host is default, so it can be left out.), a description of the server, the default database («mydb» in the example above), your username («postgres») and your password. One more step is required in order to allow pgAdmin III to connect to the server, and that is to edit pg_hba.conf file and change the authentication method from peer to md5 (will not work if you have not set the password):

sudo nano /etc/postgresql/9.3/main/pg_hba.conf

and change the line

# Database administrative login by Unix domain socket
local   all             postgres                                peer

to

# Database administrative login by Unix domain socket
local   all             postgres                                md5

Now you should reload the server configuration changes and connect pgAdmin III to your PostgreSQL database server.

sudo /etc/init.d/postgresql reload

With this GUI you may start creating and managing databases, query the database, execute SQl etc.

Установка и настройка PostgreSQL на Windows

Помимо Linux версии ПО, у проекта имеется версия, установка которой рассчитана под системы семейства Windows. Плюсом здешнего инсталлятора можно назвать встроенная возможность установки программы совместно с pgAdmin4 — графической оболочкой для общения с PostgreSQL. Чтобы осуществить установку пакета, необходимо:

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

Требуется отыскать скачанный пакет и запустить его. При этом могут начать устанавливаться дополнительные библиотеки, такие как Microsft Visual C++, и после этих процессов появится главное окно PostgreSQL Installer, в котором нужно нажать Next.

Далее, установщик попросит указать директорию для распаковки файлов

Если это неважно, можно оставить все как есть и не вводить команды

Следующее окно служит для выбора необходимых компонентов.

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

На данном экране необходимо указать и подтвердить пароль для подключения к базам.

Укажите порт, на котором будет функционировать PostgreSQL. Если это не принципиально, можно оставить по умолчанию.

Установка кодировки данных – рекомендуется оставить стандартную во избежание проблем в будущем.

Последние три окна – всего лишь подтверждение внесенных настроек и установка программы.

На завершающем этапе инсталлятор предложит запустить Stack Builder для доступа к расширениям функционала. Чаще всего этого не требуется, так что галочку следует убрать, после чего задать команду Finish.

Настройка

В отличие от Linux, версия ПО под Windows не требует редактировать файл конфигурации PostgreSQL через командную строку. Все взаимодействие с СУБД происходит через графический интерфейс. Для его запуска и начала настройки необходимо:

Найти и запустить в меню Пуск приложение pgAdmin 4.

С недавних пор pgAdmin работает через веб-интерфейс, и открывается через установленный в системе по умолчанию браузер.

Для того чтобы подключиться к локальному хранилищу, необходимо дважды щелкнуть левой кнопкой мыши по серверу PostgreSQL 11, спрятанному во вкладке Servers и ввести созданный на этапе установки пароль. Дабы система запомнила его, можно поставить галочку рядом с пунктом Save Password.

Для начала было бы хорошо сменить язык интерфейса. Это можно сделать специальной командой, зайдя в меню File – Preferences, отыскать там пункт User Language, сменить язык и нажать Ок. Если перевод не применился полностью, следует обновить страницу.

Нового пользователя можно внести командой при помощи правой кнопки мыши: по названию сервера переходом в пункт Роль входа/группы.

Введите желаемое имя, затем во вкладке справа включите все права.

Нажмите сохранить.

Таблица

Создание таблиц и значений внутри пользовательского интерфейса гораздо проще, нежели чем работа в СУБД из-под Linux, и не вызовет вопросов у новичков, что положительно сказывается на продуктивности. Однако создание самой базы не столь очевидно. Для этого нужно раскрыть корневой каталог сервера, перейти в каталог с базами и создать новую через меню, вызываемое нажатием правой кнопки мыши.

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

В базе данных раскройте подпункт Схемы – Public. Найдите пункт Таблицы, нажмите правой кнопкой мыши и создайте таблицу.

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

На этом настройка завершена.

Версия PostgreSQL

PostgreSQL имеет версии по следующей схеме:

Например, в PostgreSQL 12.1 12 – это основная версия и 1 – дополнительная версия.

  • MAJOR- Начиная с PostgreSQL 10, каждый новый основной выпуск увеличивает  часть версии MAJOR на единицу, например, на 10, 11 или 12. До PostgreSQL 10 основные версии были представлены десятичным числом, например, 9.0 или 9.6.
  • MINOR- Незначительный номер релиза является последней частью номера версии. Например, 11.4 и 11.6 являются второстепенными версиями, которые являются частью PostgreSQL версии 11 9.6.15 и 9.6.16 являются частью PostgreSQL версии 9.6.

Основные выпуски PostgreSQL с новыми функциями обычно выпускаются раз в год. Каждый основной релиз поддерживается в течение 5 лет.

Полезные команды PostgreSQL

Выйти из клиента PostgreSQL:

\q

Показать список баз данных PostgreSQL:

\l

Показать список таблиц:

\dt

Показать список пользователей (ролей):

\du

Показать структуру таблицы:

\d table_name

Переименовать базу данных:

ALTER DATABASE db RENAME TO newdb;

Удалить базу данных:

drop database db_name;

Изменить текущую базу данных в PostgreSQL (вы не сможете переименовать или удалить текущую базу данных):

\connect db_name или более короткий alias: \c db_name

Удалить роль (пользователя):

DROP ROLE user_name;

Роль не будет удалена, если у нее есть привелегии — возникнет ошибка ERROR: role cannot be dropped because some objects depend on it.

Нужно удалить привелегии у роли, например если нужно удалить роль admin2, нужно выполнить последовательность комманд с Drop Owned:

db=# REASSIGN OWNED BY admin2 TO postgres;
REASSIGN OWNED
db=# DROP OWNED BY admin2;
DROP OWNED
db=# drop role admin2;
DROP ROLE

Дать права пользователю/роли на логин (role is not permitted to log in):

ALTER ROLE admin2 WITH login;

Посмотреть список всех схем:

\dn

Подключиться к конкретной схеме:

SET search_path TO schema_name

Sequences

Получить имена всех созданных sequences:

select relname from pg_class where relkind='S';

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

SELECT last_value FROM order_id_seq;

Загрузка и установка PostgreSQL

PostgreSQL поддерживает все основные операционные системы. Процесс установки прост, поэтому я постараюсь рассказать
о нем как можно быстрее.

Для Windows и Mac ты можешь загрузить установщик
с
веб-сайта EDB.

EDB больше не предоставляет пакеты для систем GNU/Linux. Вместо этого они рекомендуют вам использовать диспетчер
пакетов твоего дистрибутива.

Установщики включают в себя разные компоненты.

Вот самые важные из них:

  • Сервер PostgreSQL (очевидно)
  • pgAdmin, графический инструмент для управления базами данных
  • Менеджер пакетов для загрузки и установки дополнительных инструментов и драйверов

Windows

Скачав установщик, запусти его как любой другой исполняемый файл. Процесс довольно прямолинеен,
но некоторые вещи все же заслуживают внимания.

Диалоговое окно «Выбрать компоненты» позволяет выборочно устанавливать компоненты.
Если у тебя нет веской причины что-то менять — оставляй все как есть.

По умолчанию PostgreSQL создает суперпользователя с именем (воспринимай его как учетную запись
администратора сервера базы данных).

Во время установки тебе нужно будет указать пароль для суперпользователя (root).

Позже ты сможешь создать других пользователей и назначать им отдельные доступы и роли.
Мы вернемся к этому позже, а сейчас тебе понадобится учетная запись суперпользователя, чтобы начать использовать СУБД.

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

Порт по умолчанию — 5432. Если ты устанавливаешь PostgreSQL впервые, то он скорее всего свободен.
Если окажется, что этот порт уже занят другим экземпляром PostgreSQL, ты можешь указать другое значение, например 5433.

После завершения установки ты сможешь запустить SQL Shell, поставляемый с Postgres.

Шаг за шагом ты выберешь сервер, какую базу данных использовать, порт, имя пользователя и пароль.

Используй данные, которые ты вводил на предыдущих шагах.

Поздравляю! Настройка для Windows завершена, и скоро мы начнем писать первые SQL запросы.

Ниже список вариантов установки для других операционных систем.

macOS

Для macOS у тебя есть разные варианты. Можно скачать установщик с сайта EDB и запустить его.

Кроме того, можно использовать , простое приложение для macOS.

После запуска у тебя появится сервер PostgreSQL, готовый к использованию.
Завершить работу сервера можно просто закрыв приложение.

Кроме того, ты также можете использовать , менеджер пакетов для macOS.

GNU/Linux

Ты можешь найти PostgreSQL в репозиториях большинства дистрибутивов Linux. Установить его можно одним щелчком мыши
из выбранного графического диспетчера пакетов.

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

Arch

Запуск оболочки PostgreSQL

После установки PostgreSQL, нужно запустить оболочку(shell), с помощью которой ты получишь возможность управлять базой данных.

Открой терминал и введи:

— это оболочка Postgres, аргумент используется для указания пользователя.

Поскольку ты еще не создавал других
пользователей, ты войдешь в систему как суперпользователь .

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

Как только пароль установлен, база данных PostgreSQL готова к работе!

Если сервер PostgreSQL по какой-то причине не запускается, можешь попробовать запустить его вручную.

External Links

Official PostgreSQL downloads

The PostgreSQL project provides an official list of download locations, including an Ubuntu software repository, at its download page. In particular, Ubuntu users can get newer PostgreSQL versions than those packaged in their Ubuntu release using apt-get via apt.postgresql.org.

For support and services around PostgreSQL see the services and support page.

EnterpriseDB

The PostgreSQL Linux downloads page contains a section on «Graphical installer» built by EnterpriseDB. You download the installer, change its properties to allow to run it as command (it has .run extension), and run it from command prompt as in «sudo whateveritwas.run».

You end up with

  • configured DB server instance, which starts with your server
  • pgAdmin III UI client application

Note that the installed software will not be integrated with Ubuntu software center. As a result, you will not receive any security updates from Ubuntu. However, the installed version will closely match the latest Ubuntu version.

Turnkey Linux

An Ubuntu-based PostgreSQL appliance is one of the easiest ways to get up and running with PostgreSQL on Ubuntu. It’s part of a family of pre-integrated TurnKey Linux Software Appliances based on Ubuntu 10.04.1 (Lucid LTS).

Копирование числовых ячеек из 1С в Excel Промо

Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.

Заключение

Мы активно используем PostgreSQL в нагруженных приложениях уже более 5 лет. Мы поддерживаем базы данных у нескольких десятков клиентов (как мелких на пару десятков пользователей, так и достаточно крупных). За все это время было много различных нештатных ситуаций, связанных с аварийными отключениями виртуальных машин и серверов. И ни разу у нас не было потерь данных. PostgreSQL всегда запускался, воспроизводил wal с последнего checkpoint и прекрасно продолжал работу. Один раз системный администратор клиента случайно удалил диск, на котором хранился целый tablespace от базы данных. При этом PostgreSQL продолжил работу просто без этих таблиц. Но даже тогда после определенных танцев с бубнами удалось восстановить базу данных в нормальное состояние, а данные пропавших таблиц достать из копии.

PostgreSQL постоянно развивается. Приблизительно каждый год выходит новый релиз с новыми возможностями. Последней значимой для нас была 13я версия (все крупные клиенты уже давно перешли на нее). В ней, в частности, значительно улучшили работу индексов с повторяющимися значениями. В результате размер наших баз данных сократился на 10-15 процентов.

Резюмируя, хочу отметить, что PostgreSQL прекрасно подходит для бизнес-приложений, легка в настройке, и предоставляет отличную альтернативу коммерческим СУБД.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: