<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[PostgreSQL use database: как выбрать и подключиться к базе данных]]></title><description><![CDATA[<p dir="auto">В PostgreSQL выбор базы данных - это базовый шаг для любой работы с данными. Команда USE DATABASE здесь не работает, как в MySQL, поэтому нужно использовать другие способы подключения. Это поможет избежать ошибок при разработке приложений или администрировании.</p>
<p dir="auto">Разберем, зачем это нужно: вы подключаетесь к нужной базе, чтобы выполнять запросы именно в ней, а не в системной. Полезно для командной строки, GUI-инструментов и скриптов. Проблемы вроде ‘database does not exist’ решатся правильными командами и проверками.</p>
<h2>Создание базы данных перед использованием</h2>
<p dir="auto">Сначала убедитесь, что база существует. В PostgreSQL создают базы командой CREATE DATABASE. Это делается от имени суперпользователя postgres. Без этого подключение не сработает - сервер просто не найдет объект.</p>
<p dir="auto">Например, представьте проект на Python с веб-приложением. Вы устанавливаете PostgreSQL, но по умолчанию есть только база postgres. Создаете свою - say, myapp_db - и только тогда можете загружать таблицы и данные. Это стандартный workflow в туториалах: установка, создание, подключение. Аргумент за: изоляция данных для разных проектов. Логично перейти к примерам команд.</p>
<p dir="auto">Вот шаги для создания:</p>
<ul>
<li>Подключитесь как postgres: <code>psql -U postgres</code></li>
<li>Выполните <code>CREATE DATABASE myapp_db;</code> - база готова.</li>
<li><em>Проверьте права:</em> по умолчанию владелец - postgres, но можно назначить другого с OWNER.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Команда</th>
<th>Описание</th>
<th>Пример</th>
</tr>
</thead>
<tbody>
<tr>
<td>CREATE DATABASE</td>
<td>Создает новую базу</td>
<td><code>CREATE DATABASE test_db;</code></td>
</tr>
<tr>
<td>CREATE DATABASE … OWNER</td>
<td>С указанным владельцем</td>
<td><code>CREATE DATABASE test_db OWNER user1;</code></td>
</tr>
<tr>
<td>SHOW DATABASES</td>
<td>Или \l в psql</td>
<td><code>\l</code></td>
</tr>
</tbody>
</table>
<h2>Подключение к базе данных в psql</h2>
<p dir="auto">В командной строке psql - основном клиенте PostgreSQL - переключаетесь на базу командой \c или -d при запуске. Это эквивалент USE в других СУБД. Без этого все запросы идут в текущей базе, что приводит к ошибкам.</p>
<p dir="auto">Возьмем пример из туториала: после установки вы в postgres, создаете dvdrental и подключаетесь. <code>\c dvdrental</code> - и теперь SELECT видит таблицы этой базы. Полезно для тестирования: быстро переключаетесь между dev и prod. Аргументы: скорость, нет нужды перезапускать сессию. Переходим к полным примерам.</p>
<p dir="auto"><strong>Основные способы подключения:</strong></p>
<ul>
<li><code>psql -d myapp_db -U postgres</code> - при запуске.</li>
<li>В сессии: <code>\c myapp_db</code></li>
<li><em>С хостом:</em> <code>psql -h localhost -d myapp_db -U user</code></li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Сценарий</th>
<th>Команда</th>
<th>Результат</th>
</tr>
</thead>
<tbody>
<tr>
<td>Локальный запуск</td>
<td><code>psql -d test_db</code></td>
<td>Подключение к test_db</td>
</tr>
<tr>
<td>С паролем</td>
<td><code>psql "postgresql://user:pass@localhost/test_db"</code></td>
<td>Через URI</td>
</tr>
<tr>
<td>Переключение в сессии</td>
<td><code>\c test_db</code></td>
<td>Мгновенный свитч</td>
</tr>
</tbody>
</table>
<h2>Подключение через pgAdmin и приложения</h2>
<p dir="auto">pgAdmin - графический инструмент для PostgreSQL. Здесь нет USE, но регистрируете сервер и выбираете базу в дереве. Удобно для визуальной работы: видите схемы, таблицы, выполняете запросы.</p>
<p dir="auto">Пример: запускаете pgAdmin, добавляете сервер localhost:5432, пароль postgres. Разворачиваете Databases - и кликаете на нужную. Для приложений вроде Node.js или Python используйте библиотеки: pg для JS, psycopg2 для Python с connection string. Это решает проблемы в production: правильный DSN - и база выбрана. Логично к сравнению инструментов.</p>
<p dir="auto"><strong>Шаги в pgAdmin:</strong></p>
<ul>
<li>Правой кнопкой на Servers &gt; Register &gt; Server.</li>
<li>Вкладка Connection: Host localhost, Username postgres.</li>
<li>Сохраните - база в списке.</li>
<li><em>Важно:</em> для удаленного доступа настройте pg_hba.conf.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Инструмент</th>
<th>Преимущества</th>
<th>Минусы</th>
</tr>
</thead>
<tbody>
<tr>
<td>psql</td>
<td>Быстрый CLI, скрипты</td>
<td>Нет GUI</td>
</tr>
<tr>
<td>pgAdmin</td>
<td>Визуализация, запросы</td>
<td>Тяжелее для dev</td>
</tr>
<tr>
<td>psycopg2 (Python)</td>
<td>Интеграция в код</td>
<td>Нужно кодить</td>
</tr>
</tbody>
</table>
<h2>Типичные ошибки и их решение</h2>
<p dir="auto">Частые проблемы: FATAL: database “mydb” does not exist - база не создана. Или role does not exist - нет пользователя. Еще permission denied: назначьте права GRANT.</p>
<p dir="auto">Пример: пытаетесь <code>\c nonexistent_db</code> - ошибка. Решение: CREATE сначала. В приложениях проверяйте exists через SQL: SELECT 1 FROM pg_database WHERE datname=‘mydb’. Это спасает скрипты деплоя. Аргумент: proactive подход экономит время.</p>
<p dir="auto"><strong>Распространенные ошибки:</strong></p>
<ul>
<li><strong>База не существует</strong> - Создайте CREATE DATABASE.</li>
<li><em>Неправильный пароль</em> - Проверьте в pgAdmin или .pgpass.</li>
<li>Права доступа - <code>GRANT ALL ON DATABASE mydb TO user;</code>.</li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Ошибка</th>
<th>Причина</th>
<th>Фикс</th>
</tr>
</thead>
<tbody>
<tr>
<td>database does not exist</td>
<td>Нет CREATE</td>
<td><code>CREATE DATABASE</code></td>
</tr>
<tr>
<td>no pg_hba.conf entry</td>
<td>Хост не разрешен</td>
<td>Редактируйте conf</td>
</tr>
<tr>
<td>FATAL: role</td>
<td>Нет пользователя</td>
<td><code>CREATE USER</code> + GRANT</td>
</tr>
</tbody>
</table>
<h2>Работа с несколькими базами в проекте</h2>
<p dir="auto">В реальных проектах несколько баз: одна для staging, другая production. Переключаетесь динамически или через config. В скриптах bash: psql -d $DB_NAME. В ORM вроде SQLAlchemy - engine с database в URI.</p>
<p dir="auto">Это масштабирует: тестовая база копируется pg_dump/pg_restore. Пример из туториалов: dvdrental для практики запросов. Подумать: миграции с Alembic или Flyway автоматизируют создание/подключение.</p>
<p dir="auto"><strong>Плюсы мульти-баз:</strong></p>
<ul>
<li>Изоляция environments.</li>
<li>Легкий бэкап одной.</li>
<li><em>Тестирование:</em> drop/create без риска.</li>
</ul>
<h2>Практические сценарии перехода дальше</h2>
<p dir="auto">Подведем: вы освоили создание и выбор базы в PostgreSQL через psql и pgAdmin. Это основа для таблиц, INSERT/SELECT. Осталось: изучить схемы внутри базы или репликацию для кластеров. Подумайте о pg_dump для бэкапов - следующий логичный шаг в администрировании.</p>
]]></description><link>https://forum.exlends.ru/topic/857/postgresql-use-database-kak-vybrat-i-podklyuchitsya-k-baze-dannyh</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 09:52:10 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/857.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 Feb 2026 15:34:17 GMT</pubDate><ttl>60</ttl></channel></rss>