Установка и настройка postgresql 12 на windows 10
Содержание:
- Установка PostgreSQL 12 и pgAdmin 4 на Windows 10
- Шаг 1 – Скачивание установщика для Windows
- Шаг 2 – Запуск установщика PostgreSQL
- Шаг 4 – Выбираем компоненты для установки
- Шаг 6 – Задаем пароль для системного пользователя postgres
- Шаг 7 – Указываем порт для экземпляра PostgreSQL
- Шаг 8 – Указываем кодировку данных в базе
- Шаг 9 – Проверка параметров установки PostgreSQL
- Шаг 10 – Запуск процесса установки
- Шаг 11 – Завершение установки
- Список существующих БД
- 2021-09-09 — pgAdmin 4 v5.7 Released
- Description
- Поиск по прошлым запросам¶
- Amazon RDS for PostgreSQL
- Зайти в БД
- datagrip
- Command-line Options
- EuroDB
- dotConnect for PostgreSQL
- Прокрутка результата выполнения запроса вперед/назад¶
- Amazon Aurora with PostgreSQL compatibility
- Our users us
- Postgres Plus Advanced Server
- LedgerSMB
- Установка PostgreSQL:
- Создать базу данных
- Запуск скрипта из файла
- Current Version 42.2.23
- Запуск и настройка pgAdmin 4
- psql
Установка PostgreSQL 12 и pgAdmin 4 на Windows 10
Итак, давайте перейдем к процессу установки, и рассмотрим все шаги, которые необходимо выполнить, чтобы установить PostgreSQL 12 и pgAdmin 4 на Windows 10.
Шаг 1 – Скачивание установщика для Windows
Как было уже отмечено, PostgreSQL реализован для многих платформ, но, так как мы будем устанавливать PostgreSQL на Windows, нам, соответственно, нужен установщик под Windows. Скачать данный дистрибутив можно, конечно же, с официального сайта PostgreSQL, вот страница загрузки — https://www.postgresql.org/download/windows/
После перехода на страницу необходимо нажимать на ссылку «Download the installer», в результате Вас перенесёт на сайт компании EnterpriseDB, которая и подготавливает графические дистрибутивы PostgreSQL для многих платформ, в том числе и для Windows, поэтому можете сразу переходить на этот сайт, вот ссылка на страницу загрузки https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
Здесь Вам необходимо выбрать версию PostgreSQL и платформу, в нашем случае выбираем PostgreSQL 12 и Windows x86-64.

В итоге должен загрузиться файл postgresql-12.2-2-windows-x64.exe размером примерно 191 мегабайт (на момент написания статьи доступна версия 12.2-2).
Шаг 2 – Запуск установщика PostgreSQL
Теперь, чтобы начать установку, необходимо запустить скаченный файл (установка PostgreSQL требует прав администратора).
После запуска откроется окно приветствия, нажимаем «Next».

Далее, в случае необходимости мы можем указать путь к каталогу, в который мы хотим установить PostgreSQL 12, однако можно оставить и по умолчанию.
Нажимаем «Next».

Шаг 4 – Выбираем компоненты для установки
Затем выбираем компоненты, которые нам необходимо установить, для этого оставляем галочки напротив нужных нам компонентов, а обязательно нам нужны PostgreSQL Server и pgAdmin 4. Утилиты командной строки и Stack Builder устанавливайте по собственному желанию, т.е. их можно и не устанавливать.
Нажимаем «Next».

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

Шаг 6 – Задаем пароль для системного пользователя postgres
Далее нам нужно задать пароль для пользователя postgres – это администратор PostgreSQL Server с максимальными правами.
Вводим и подтверждаем пароль. Нажимаем «Next».

Шаг 7 – Указываем порт для экземпляра PostgreSQL
На данном шаге в случае необходимости мы можем изменить порт, на котором будет работать PostgreSQL Server, если такой необходимости у Вас нет, то оставляйте по умолчанию.
Нажимаем «Next».

Шаг 8 – Указываем кодировку данных в базе
Затем мы можем указать конкретную кодировку данных в базе, для этого необходимо выбрать из выпадающего списка нужную Locale.
Однако можно оставить и по умолчанию, жмем «Next».

Шаг 9 – Проверка параметров установки PostgreSQL
Все готово к установке, на данном шаге проверяем введенные нами ранее параметры и, если все правильно, т.е. все то, что мы и вводили, нажимаем «Next».

Шаг 10 – Запуск процесса установки
Далее появится еще одно дополнительное окно, в котором мы должны нажать «Next», чтобы запустить процесс установки PostgreSQL на компьютер.

Установка началась, она продлится буквально минуту.

Шаг 11 – Завершение установки
Когда отобразится окно с сообщением «Completing the PostgreSQL Setup Wizard», установка PostgreSQL 12, pgAdmin 4 и других компонентов будет завершена.
Также в этом окне нам предложат запустить Stack Builder для загрузки и установки дополнительных компонентов, если Вам это не нужно, то снимайте галочку «Lanch Stack Builder at exit?».
Нажимаем «Finish».

Список существующих БД
Список уже существующих на сервере баз данных можно получить командой
\l
Name | Owner | Encoding | Collate | Ctype | Access privileges
—————+———-+———-+—————————-+—————————-+————————
urn.su | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
topbicyle.ru | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
postgres | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
template0 | postgres | UTF8 | English_United States.1252 | English_United States.1252 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | English_United States.1252 | English_United States.1252 | =c/postgres +
| | | | | postgres=CTc/postgres
test | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
(6 rows)
Обратите внимание на столбцы Encoding, Collate и Ctype. Знание кодировок может Вам пригодиться в будущем.
2021-09-09 — pgAdmin 4 v5.7 Released
The pgAdmin Development Team are pleased to announce pgAdmin 4 version 5.7. This release of pgAdmin 4 includes 26 bug fixes and new features. For more details please see the release notes.
Notable changes in this release include:
Features:
- Added support for the truncate table with restart identity.
- Added database and server information on the Maintenance process watcher dialog..
- Allow the referenced table to be the same as the local table in one to many relationship for ERD Tool..
- Make closing tabs to be smarter by focusing on the appropriate tab when the user closed a tab..
- Set PSQLRC and PSQL_HISTORY env vars to apt. user storage path in the server mode..
Bugs/Housekeeping:
- Fixed blank screen issue on windows and also made changes to use NWjs manifest for remembering window size.
- Ensure that trigger function SQL should have ‘create or replace function’ instead of ‘create function’ only.
- Fixed the export image issue where relation lines are over the nodes.
- Fixed width limitation issue in PSQL tool window.
- Fixed an issue where columns with sequences get altered unnecessarily with a schema diff tool.
- Ensure that the lock panel should not be blocked for larger records.
- Fixed an issue where whitespace in function bodies was not applied while generating the script using Schema Diff.
- Introduced the OAUTH2_SCOPE variable for the Oauth2 scope configuration.
- Enables pgAdmin to retrieve user permissions in case of nested roles, which helps to terminate the session for AWS RDS.
- Ensure that pgAdmin should not fail at login due to a special character in the hostname.
Download your copy now!
Description
psql is a character-based
front-end to Postgres. It
enables you to type in queries interactively, issue them to
Postgres, and see the query
results.
psql is a Postgres client application. Hence, a
postmaster process must be
running on the database server host before psql is executed. In addition, the correct
parameters to identify the database server, such as the
postmaster host name, may need
to be specified as described below.
When psql starts, it reads
SQL commands from /etc/psqlrc and then
from $(HOME)/.psqlrc This allows SQL commands like
SET which can be used to set the date
style to be run at the start of every session.
Connecting To A Database
psql attempts to make a
connection to the database at the hostname and port number
specified on the command line. If the connection could not be
made for any reason (e.g. insufficient privileges, postmaster
is not running on the server, etc) .IR psql will return an error that says
Connection to database failed.
The reason for the connection failure is not provided.
Entering Queries
In normal operation, psql
provides a prompt with the name of the database that
psql is current connected to
followed by the string «=>». For example,
$ psql testdb
Welcome to the POSTGRESQL interactive sql monitor:
Please read the file COPYRIGHT for copyright terms of POSTGRESQL
type \? for help on slash commands
type \q to quit
type \g or terminate with semicolon to execute query
You are currently connected to the database: testdb
testdb=>
At the prompt, the user may type in SQL queries. Unless the -S option is set,
input lines are sent to the backend when a query-terminating
semicolon is reached.
Whenever a query is executed, psql also polls for asynchronous
notification events generated by LISTEN
and NOTIFY.
psql can be used in a pipe
sequence, and automatically detects when it is not listening or
talking to a real tty.
Поиск по прошлым запросам¶
Поиск по запросам под OS linux работает аналогично поиску в BASH’е. Находясь в консоле, надо нажать CTRL+R
Появляется приглашение ввести буквы, по которым будет производиться поиск
denis=# (reverse-i-search)`':
По мере ввода букв уточняется запрос, который вы ищите.
denis=# (reverse-i-search)`dr': drop sequence eobjects_objects_15_id_seq;
Дополнительные горячие клавиши для управления режимом поиска
- ENTER — выполнение найденного запрос
- ESC — переход в режим редактирования найденного запроса
- CTRL+R — циклический перебор sql-запросов, которые соответствуют введенной строке поиска
- CTRL+G — закрытие режима поиска без выполнения запроса
Amazon RDS for PostgreSQL
| Description | License | Pricing | Publisher | |
|---|---|---|---|---|
|
Amazon RDS makes it easy to set up, operate, and scale PostgreSQL deployments in the cloud. With Amazon RDS, you can deploy scalable PostgreSQL deployments in minutes with cost-efficient and resizable hardware capacity. Amazon RDS manages complex and time-consuming administrative tasks such as PostgreSQL software installation and upgrades; storage management; replication for high availability and read throughput; and backups for disaster recovery. With just a few clicks in the AWS Management Console, you can deploy a PostgreSQL database with automatically configured database parameters for optimal performance. Amazon RDS for PostgreSQL database instances can be provisioned with either standard storage or Provisioned IOPS storage. Once provisioned, you can scale from 5GB to 3TB of storage and from 1,000 IOPS to 30,000 IOPS. Amazon RDS for PostgreSQL also enables you to scale out beyond the capacity of a single database deployment for read-heavy database workloads. |
Open source | Amazon Web Services | View |
Зайти в БД
Чтобы начать работу с базой данных нужно знать её имя, например
пусть Вам нужна база даныых, которую назвали просто HeiHei_ru_DB
Воспользуйтесь командой
\c HeiHei_ru_DB
You are now connected to database «HeiHei_ru_DB» as user «postgres».
Если вы работаете в
Linux
и база данных находится на том же хосте можно выполнить
psql -h 127.0.0.1 -d DATABASENAME -U DATABASEUSERNAME
Чтобы посмотреть список таблиц введите
\dt
List of relations
Schema | Name | Type | Owner
———+———+——-+———-
public | person | table | postgres
(1 row)
Чтобы посмотреть всю таблицу person уже можно использовать стандартный
SELECT * FROM person;
datagrip
IDE для баз. Несмотря на то, что продукт относительно свежий, он уже используется повсеместно. В основном за счет того, что сразу встроен в мегапопулярные продукты от компании JetBrains: IntelliJ IDEA, PyCharm, PhpStorm и т.д.
Собственно, эта его встроенность одновременно является и главной киллер-фичей продукта: вы редактируете, например, php-код, в котором есть строка с sql-запросом, и внезапно понимаете, что IDE вам подсказывает (прямо в вашем коде) синтаксис SQL, названия таблиц и их полей, подчеркивает красненьким, если что-то написано не так, форматирует SQL и многое-многое другое. Конечно, в этом же IDE можно делать и то, что умеют другие GUI для баз: просматривать списки таблиц и других сущностей, отдельно делать запросы, экспорт таблиц в разные форматы и многое другое.
Из особенностей я бы отметил следующие вещи:
- можно выделить несколько insert’ов и нажать «Edit as table» (см. картинку). После чего отредактировать это в удобном табличном виде вместо sql-синтаксиса, причем там же можно добавлять строки, колонки, экспортировать в csv и т.д.
- Можно сравнивать результаты двух запросов. Это полезно, когда пытаешься упростить сложный запрос, и при этом ничего не сломать.
- встроенность в код проработана не до конца. К примеру, при переименовывании в каком-либо интерфейсе колонки таблицы, IDE не находит нужные строки с SQL в коде (при этом автокомплит в этих строках работал), и наоборот, находит какую-то чушь.
- Визуальной разработки не очень много. Т.е. вы можете сделать таблицу, но view уже не можете. Если таблица содержит какие-то id с foreign key (допустим, ссылка на некий словарь), хотелось бы при в вводе данных в таблицу выбирать значения из словаря, а не вбивать айдишки.
- Если посмотреть таблицу в какой-нибудь из схем, то Datagrip посылает запрос set search_path = имясхемы, что приводит к плохим последствиям, если используется pgbouncer (а он используется почти всегда в случае с php или когда много серверов), так что для dev-разработки лучше использовать разные подключения: для работы кода — через pgbouncer, для ide — напрямую к базе.
Datagrip активно развивается, в частности, исправлены некоторые раздражающие баги с подсветкой синтаксиса.
В целом хороший современный инструмент, рекомендую.
Command-line Options
psql understands the
following command-line options:
- -A
-
Turn off fill justification when printing out table
elements. - -c query
-
Specifies that psql is to
execute one query string, query, and then exit. This is useful
for shell scripts, typically in conjunction with the
-q option in shell scripts. - -d dbname
-
Specifies the name of the database to connect to. This is
equivalent to specifying dbname as the last field in the command
line. - -e
-
Echo the query sent to the backend
- -E
-
Echo the actual query generated by \d and other backslash
commands - -f filename
-
Use the file filename as
the source of queries instead of reading queries
interactively. This file must be specified for and visible to
the client frontend. - -F separator
-
Use separator as the field
separator. The default is an ASCII vertical bar («|»). - -h hostname
-
Specifies the host name of the machine on which the
postmaster is running.
Without this option, communication is performed using local
Unix domain sockets. - -H
-
Turns on HTML 3.0 tabular
output. - -l
-
Lists all available databases, then exit. Other
non-connection options are ignored. - -n
-
Do not use the readline library for input line editing and
command history. - -o filename
-
Put all output into file filename. The path must be writable by
the client. - -p port
-
Specifies the TCP/IP port or, by omission, the local Unix
domain socket file extension on which the postmaster is listening for connections.
Defaults to the value of the PGPORT
environment variable, if set, or to 5432. - -q
-
Specifies that psql
should do its work quietly. By default, it prints welcome and
exit messages and prompts for each query, and prints out the
number of rows returned from a query. If this option is used,
none of this happens. This is useful with the -c option. - -s
-
Run in single-step mode where the user is prompted for
each query before it is sent to the backend. - -S
-
Runs in single-line mode where each query is terminated by
a newline, instead of a semicolon. - -t
-
Turn off printing of column names. This is useful with the
-c option in shell scripts. - -T table_options
-
Allows you to specify options to be placed within the
table ... tag for HTML 3.0 tabular output.For example,
border will give you tables with
borders. This must be used in conjunction with the
-H option. - -u
-
Asks the user for the user name and password before
connecting to the database. If the database does not require
password authentication then these are ignored. If the option
is not used (and the PGPASSWORD environment variable is not
set) and the database requires password authentication, then
the connection will fail. The user name is ignored
anyway. - -x
-
Turns on extended row format mode. When enabled each row
will have its column names printed on the left with the
column values printed on the right. This is useful for rows
which are otherwise too long to fit into one screen line.
HTML row output supports this mode also.
EuroDB
| Description | License | Pricing | Publisher | |
|---|---|---|---|---|
|
EuroDB platform is an enterprise-ready database solution based on open source technology. Modules bundled with the database engine allow for fine-grained customization of the base for specific needs. Among others, this includes solutions to common difficulties like:
Along with experienced technical support and fair and simple licensing EuroDB allows for easier management for the operations team and overall reduction of costs of using a database. For price information visit our price page. |
Commercial | Visit our price page | EuroLinux Sp. z o.o. | View |
dotConnect for PostgreSQL
| Description | License | Pricing | Publisher | |
|---|---|---|---|---|
|
dotConnect for PostgreSQL is a high-performance ORM enabled data provider for PostgreSQL that builds on ADO.NET technology to present a complete solution for developing PostgreSQL-based database applications. It introduces new approaches for designing application architecture, boosts productivity, and facilitates the development of database applications. Our ADO.NET PostgreSQL provider supports a wide range of PostgreSQL-specific features, such as secure SSL connections, PostgreSQL notifications, PostgreSQL bulk data loading, GEOMETRY, PostgreSQL ARRAY types, and others. Key Features
PostgreSQL support: from 7.1 to 13 Visual Studio support: 2008 – 2019 Platforms support: .NET 5.0 Full .NET Framework 2.0 – 4.8 .NET Core 1.x, 2.x, and 3.0 .NET Compact Framework 2.0 and above Mono 2.0 and above Enhanced ORM Support: Entity Framework v1 — v6 Entity Framework Core 1.x, 2.x, 3.1, and 5.0 NHibernate LinqConnect |
Commercial | $159.95 | Devart | View |
Прокрутка результата выполнения запроса вперед/назад¶
Довольно часто в дистрибутивах linux в качестве программы для постраничного вывода результатов выполнения запросов используется
программа more, которую не всегда удобно использовать для интерактивной работы с результатом запроса (производить поиск,
прокручивать результат запрос вверх/вниз, выводить результат запроса с использованием переноса строк).
Выход есть! Можно заменить more на less, которая позволяет интерактивно работать с результатом запроса.
Для этого необходимо установить следующие переменные окружения:
export PAGER="less" export LESS="-iMSx4 -FX"
Помимо всего вышеперечисленного опция S отключает перенос длинных строк, что улучшает читабельность результата запроса.
Примечание
Есть неприятная особенность работы с less, если приходится прокручивать результат запроса вправо/влево — в этом случае,
генерируется много пустых экранов, которые занимают много места вверху терминала (опция X). Однако часто эта небольшая неприятность
перекрывается остальными преимуществами less
Включить/отключить постраничный вывод результата запроса можно опцией
\pset pager
Amazon Aurora with PostgreSQL compatibility
| Description | License | Pricing | Publisher | |
|---|---|---|---|---|
|
Amazon Aurora is a PostgreSQL compatible relational database built for the cloud, that combines the performance and availability of high-end commercial databases with the simplicity and cost-effectiveness of open source databases. It delivers up to three times the throughput of standard PostgreSQL. Amazon Aurora is designed to be compatible with PostgreSQL, so that existing applications and tools can run without requiring modification. It is available through Amazon Relational Database Service (RDS), freeing you from time-consuming administrative tasks such as provisioning, patching, backup, recovery, failure detection, and repair. Amazon Aurora is designed to offer greater than 99.99% availability, increasing PostgreSQL performance and availability by tightly integrating the database engine with an SSD-backed virtualized storage layer purpose-built for database workloads. Amazon Aurora’s storage is fault-tolerant and self-healing, and disk failures are repaired in the background without loss of database availability. Amazon Aurora is designed to automatically detect database crashes and restart without the need for crash recovery or to rebuild the database cache. If the entire instance fails, Amazon Aurora will automatically fail over to one of up to 15 read replicas. You can quickly launch an Amazon Aurora database instance with a few clicks in the RDS Management Console. Amazon Aurora scales storage automatically, growing storage and rebalancing I/Os to provide consistent performance without the need for over-provisioning. For example, you can start with a database of 10GB and have it automatically grow up to 64TB without requiring availability disruptions to resize or restripe data. |
Commercial | Varying | Amazon Web Services | View |
Our users us
Overall, PostgreSQL has been faster than the commercial product from which we converted.
Kevin Grittner, Wisconsin Court System
Good software with good services makes us very satisfied with our choice of PostgreSQL and free software.
Clarice Coppetti, IT Vice President, CAIXA Bank, Brazil
Here in CAIXA bank we use Postgresql in mission-critical financial environments because — beyond being strategic for our business and Brazil — it has the quality to support our operations.
Clarice Coppetti, IT Vice President, CAIXA Bank, Brazil
The new data payload option in asychronous notifications will power the next version of our remote data display programs for arcapos.
Marc Balmer, founder, micro systems
Postgres is a truly awesome database. When we started working on Launchpad I wasn’t sure if it would be up to the job. I was so wrong. It’s been robust, fast, and professional in every regard.
Mark Shuttleworth, Ubuntu Linux
Postgres Plus Advanced Server
| Description | License | Pricing | Publisher | |
|---|---|---|---|---|
|
Postgres Plus Advanced Server is an enterprise ready database renowned for its transaction processing capabilities and exceptional performance across a spectrum of query intensive and mixed load applications. Built upon PostgreSQL, the world’s most advanced open source database, Advanced Server v8.3 Release 2 offers deeper Oracle compatibility to more applications than ever before, as well as performance and scalability features like Infinite Cache that are not available in the community version of PostgreSQL. |
Commercial | For detailed pricing, please visit our <a href=»http://www.enterprisedb.com/products/purchase.do»>subscriptions page</a>. | EDB | View |
Note: The PostgreSQL Global Development Group do not endorse or
recommend any products listed, and cannot vouch for the quality or reliability
of any of them.
LedgerSMB
| Description | License | Pricing | Publisher | |
|---|---|---|---|---|
|
LedgerSMB is a financial accounting and ERP application aimed at small to midsize businesses. It features supply chain management, AR/AP, and GL support, a point of sale interface, and much much more. The software is aimed primarily at small to midsize businesses but is also paying close attention to scalability considerations with an eye to be usable by organizations of any size. The LedgerSMB project pays close attention to security and and data integrity, and seeks to provide data assurance well above any other players in this space. This application is not solely maintained by Metatron Technology Consulting. Command Prompt, Inc. and other companies have an equal say in the management and development of this software. We believe in community, multi-vendor development and so the listing of Metatron Technology Consulting as the publisher does not detract from the very large and important contributions of others who help develop and administer the project. |
Open source | Metatron Technology Consulting | View |
Установка PostgreSQL:
5. Введите пароль суперпользователя базы данных и созданного пользователя ОС.
Примечание. Суперпользователь базы данных — это учетная запись, не являющаяся администратором. Это сделано для предотвращения использования хакерами недостатков, обнаруженных в PostgreSQL, для нанесения ущерба системе. Поэтому необходимо установить пароль для суперпользователя базы данных.
7. Выберите языковую среду выполнения.
Примечание. Выберите языковой стандарт времени выполнения (формат кодировки символов) для области хранения базы данных. Если при выборе языкового стандарта вы выберете «языковой стандарт по умолчанию», установка будет неправильной; в то же время PostgreSQL не поддерживает GBK и GB18030 как наборы символов. Если вы выберете другой четыре набора китайских символов: китайский традиционный Гонконг (китайский , САР Гонконг), китайский упрощенный Сингапур (китайский , Сингапур), китайский традиционный Тайвань (китайский , Тайвань) и китайский традиционный Макао (китайский , Marco SAR), приведет к неверным результатам запроса и эффектам сортировки. Рекомендуется выбирать «С», то есть площадь не использовать.
9. Установка завершена.
После завершения установки вы можете увидеть из начальной папки
Каталог установки можно увидеть
Среди них: хранилища данных, файлы данных, файлы журналов, файлы управления, файлы конфигурации и т. Д. uninstall-postgresql.exe используется для удаления установленной системы управления базами данных.
Создать базу данных
Создадим базу данных
heihei_ru_db
с кодировкой utf8
CREATE DATABASE «heihei_ru_db» WITH OWNER «postgres» ENCODING ‘UTF8’;
CREATE DATABASE
Создадим базу данных heihei с кодировкой utf8 и укажем значения для Collate, Ctype и Template
CREATE DATABASE «heihei» WITH OWNER «postgres» ENCODING
‘UTF8’ LC_COLLATE = ‘C’ LC_CTYPE = ‘C’ TEMPLATE = template0;
CREATE DATABASE
Проверим, что получилось
\l
Name | Owner | Encoding | Collate | Ctype | Access privileges
—————+———-+———-+—————————-+—————————-+————————
heihei | postgres | UTF8 | C | C |
urn.su | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
topbicyle.ru | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
postgres | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
template0 | postgres | UTF8 | English_United States.1252 | English_United States.1252 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | English_United States.1252 | English_United States.1252 | =c/postgres +
| | | | | postgres=CTc/postgres
test | postgres | UTF8 | English_United States.1252 | English_United States.1252 |
(7 rows)
Если я в
bash
сделаю
locale -a
То получу сразу четыре доступные кодировки
C
C.UTF-8
en_US.utf8
POSIX
Но создать БД, например, с en_US.utf8 у меня не получается
CREATE DATABASE «heihei» WITH OWNER «postgres» ENCODING
‘UTF8’ LC_COLLATE = ‘en_US.utf8’ LC_CTYPE = ‘en_US.utf8’ TEMPLATE = template0;
Приводит к ошибке
ERROR: invalid locale name: «en_US.UTF-8»
UPD: Выполнил такую же команду в
Ubuntu
и база успешно создана
CREATE DATABASE «new_db» WITH OWNER «postgres» ENCODING ‘UTF8’ LC_COLLATE = ‘en_US.UTF-8’ LC_CTYPE = ‘en_US.UTF-8’ TEMPLATE = template0;
CREATE DATABASE
Запуск скрипта из файла
Сперва проверим, что с переменными окружения всё впорядке.
Для этого введём
в консоль psql.exe нажмём Enter и проверим что bash не жалуется на неизвестную команду.
Если жалуется — прочитайте мои советы в статье
Пишем скрипт
script.sql
Применим этот скрипт к базе данных
HeiHei_ru_DB
У меня postgres запущен локально на порту 5433. У Вас может быть
на 5432 — проверьте.
cat script.sql | psql.exe -h localhost -p5433 -U postgres HeiHei_ru_DB
Password for user postgres:
CREATE TABLE
Саме время сделать что-то более близкое к реальному скрипту
На поля таблицы нужно ввести некоторые ограничения и добавить им свойств.
Теперь запустим этот скрпит уже не в тестовую а в рабочую базу данных
heihei (которая совпадает с названием сайта HeiHei.ru,
но если написать .ru будет синтаксическая ошибка ERROR: syntax error at or near «.»)
cat booking_sites.sql | psql.exe -h localhost -p5433 -U postgres heihei
Password for user postgres:
CREATE TABLE
Current Version 42.2.23
This is the current version of the driver. Unless you have unusual
requirements (running old applications or JVMs), this is the driver
you should be using. It supports PostgreSQL 8.2 or newer and
requires Java 6 or newer. It contains support for SSL and the
javax.sql package.
- If you are using Java 8 or newer then you should use the JDBC 4.2 version.
- If you are using Java 7 then you should use the JDBC 4.1 version.
- If you are using Java 6 then you should use the JDBC 4.0 version.
- If you are using a Java version older than 6 then
you will need to use a JDBC3 version of the driver, which will by
necessity not be current, found in .
Запуск и настройка pgAdmin 4
PostgreSQL 12 и pgAdmin 4 мы установили, теперь давайте запустим pgAdmin 4, подключимся к серверу и настроим рабочую среду pgAdmin.
Чтобы запустить pgAdmin 4, зайдите в меню пуск, найдите пункт PostgreSQL 12, а в нем pgAdmin 4.
Подключение к серверу PostgreSQL 12
pgAdmin 4 имеет веб интерфейс, поэтому в результате у Вас должен запуститься браузер, а в нем открыться приложение pgAdmin 4.
При первом запуске pgAdmin 4 появится окно Set Master Password», в котором мы должны задать «мастер-пароль», это можно и не делать, однако если мы будем сохранять пароль пользователя (галочка «Сохранить пароль»), например, для того чтобы каждый раз при подключении не вводить его, то настоятельно рекомендуется придумать и указать здесь дополнительный пароль, это делается один раз.
Вводим и нажимаем «ОК».

Чтобы подключиться к только что установленному локальному серверу PostgreSQL в обозревателе серверов, щелкаем по пункту «PostgreSQL 12».
В итоге запустится окно «Connect to Server», в котором Вам нужно ввести пароль системного пользователя postgres, т.е. это тот пароль, который Вы придумали, когда устанавливали PostgreSQL. Вводим пароль, ставим галочку «Save Password», для того чтобы сохранить пароль и каждый раз не вводить его (благодаря функционалу «мастер-пароля», все сохраненные таким образом пароли будут дополнительно шифроваться).
Нажимаем «OK».

В результате Вы подключитесь к локальному серверу PostgreSQL 12 и увидите все объекты, которые расположены на данном сервере.

Установка русского языка в pgAdmin 4
Как видите, по умолчанию интерфейс pgAdmin 4 на английском языке, если Вас это не устраивает, Вы можете очень просто изменить язык на тот, который Вам нужен. pgAdmin 4 поддерживает много языков, в том числе и русский.
Для того чтобы изменить язык pgAdmin 4, необходимо зайти в меню «File -> Preferences».

Затем найти пункт «User Languages», и в соответствующем поле выбрать значение «Russian». Для сохранения настроек нажимаем Save», после этого перезапускаем pgAdmin 4 или просто обновляем страницу в браузере.

В результате pgAdmin 4 будет русифицирован.

Пример написания SQL запроса в Query Tool (Запросник)
Для того чтобы убедиться в том, что наш сервер PostgreSQL работает, давайте напишем простой запрос SELECT, который покажет нам версию сервера PostgreSQL.
Для написания SQL запросов в pgAdmin 4 используется инструмент Query Tool или на русском «Запросник», его можно запустить с помощью иконки на панели или из меню «Инструменты».
После того как Вы откроете Query Tool, напишите
SELECT VERSION()
Этот запрос показывает версию PostgreSQL.

Как видите, все работает!
psql
На первом месте psql, и это неудивительно. Надежный как автомат калашникова, бесплатный, стоит из коробки, что еще надо для счастья? Для редактирования запросов используется редактор, указанный в переменной окружения EDITOR, обычно ставят vim, nano или что-то в этом духе. Ну и вообще, psql — это unix-way, т.е. можно его запускать со своим редактором, своим пейджером для отображения результатов, ему можно на вход подавать sql-запрос через пайп, и вывод направлять куда надо.
Из минусов можно отметить слабенький автокомплит, а также то, что приходится заучивать неинтуитивные команды из серии и т.д. (впрочем, все описания команд доступны через команду )
Ну, и работа в консоли и в виме — это не всех устраивает почему-то 🙂
На самом деле, иногда хочется иметь где-нибудь слева полный список таблиц/вьюх и иметь возможность щелкнуть мышкой по нужной, чтобы посмотреть, что там вообще. Т.е. хоть какой-то GUI. Работа в psql хоть и эффективна, но напоминает работу в темной комнате с маленьким фонариком, освещающим лишь только один объект за раз.