Postgresql создать базу данных линукс

Postgresql создать базу данных линукс

PostgreSQL — свободная объектно-реляционная система управления базами данных (СУБД). Существует в реализациях для множества UNIX-подобных платформ, включая AIX, различные BSD-системы, HP-UX, IRIX, Linux, macOS, Solaris/OpenSolaris, Tru64, QNX, а также для Microsoft Windows.

В инструкции предполагается, что сама СУБД уже установлена в Ubuntu. Рассмотрим создание рабочей базы данных.

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

Далее выполним команду psql:

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

CREATE USER admin WITH PASSWORD 'masterkey';

где ‘masterkey’ — пароль пользователя admin.

Для создания базы данных, например admindb, необходимо выполнить команду:

Но в этом случае будет ошибка «кодировка UTF-8 не соответствует локали en_US; выбранная настройка LC_CTYPE требует кодировки LATIN1», так как шаблон, из которого создается база данных, основан на кодировке LATIN1, а нам нужна UTF-8. Выходим полностью из базы данных и пользователя «postgres»:

Для исправления данной ошибки выполним следующие действия. Создадим файл командой:

Добавим в него следующие содержимое:

export LANGUAGE="en_US.UTF-8" export LANG="en_US.UTF-8" export LC_ALL="en_US.UTF-8"

Зайдем снова в базу данных postgres:

Далее выполняем команды по очереди:

update pg_database set datistemplate=false where datname='template1'; drop database Template1; create database template1 with owner=postgres encoding='UTF-8'lc_collate='en_US.utf8' lc_ctype='en_US.utf8' template template0; update pg_database set datistemplate=true where datname='template1';

Создадим базу данных командой (английская локализация):

CREATE DATABASE admindb WITH OWNER = postgres ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = 'en_US.utf8' CONNECTION LIMIT = -1 TEMPLATE template1;

Или создадим базу данных командой (русская локализация):

CREATE DATABASE admindb WITH OWNER = postgres ENCODING = 'UTF8' TABLESPACE = pg_default LC_COLLATE = 'ru_RU.UTF-8' CONNECTION LIMIT = -1 TEMPLATE template1;

Проверим вывод информации о базе данных командой:

Читайте также:  Линукс запуск от имени администратора

База данных должна быть создана в кодировке «UTF-8».

Теперь необходимо дать пользователю admin все права на базу данных. Для этого выполним команду:

GRANT ALL PRIVILEGES ON DATABASE admindb to admin;

Источник

Как создать базу данных в postgresql

Создать базу данных в postgresql можно через какой-либо веб-интерфейс, установленный на сервере (например, pgAdmin) или в консоли.

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

Создать базу данных в Postgresql в консоли

Прежде всего требуется подключиться к серверу по SSH.

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

could not change directory to «/root»
psql (9.2.24)
Type «help» for help.

Если возникла ошибка, подобная приведенной выше — нужно перейти в любой каталог, в который postgres имеет доступ.

Чтобы попасть в базу без sudo и смены каталога можно выполнить 2 команды от имени пользователя root:

Пример авторизации и вывод списка баз приведен на скриншоте:

Создать базу данных в Postgresql в консоли

Оказавшись к консоли можно создать базу данных

CREATE DATABASE

Затем пользователя, которому присвоить пароль.

postgres=# CREATE USER appadmin WITH PASSWORD ‘jkfdk8H0Indgshy6hk’;

CREATE ROLE

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

postgres=# GRANT ALL PRIVILEGES ON DATABASE app to appadmin;

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

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

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

В файле потребуется заменить в двух строках, начинающихся с host тип аутентификации с ident на md5. Это последнее значение в каждой строке.

# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all peer # IPv4 local connections: #host all all 127.0.0.1/32 ident host all all 127.0.0.1/32 md5 # IPv6 local connections: #host all all ::1/128 ident host all all ::1/128 md5

Для вступления в силу изменений нужно перезапустить сервис

Читайте также:  Mac keyboard on linux

Установка postgresql на Centos и Debian

Если пакета postgresql на сервере еще нет, его нужно сначала установить.

postgresql есть в репозиториях всех популярных дистрибутивов.

yum install postgresql-server postgresql-devel postgresql-contrib

После установки на CentOS требуется выполнить начальную настройку. Скрипт подобен mysql_secure_instalation в MySQL.

Initializing database … OK

Для Debian / Ubuntu сервис запускается автоматически, для Centos его нужно стартовать и добавить в автозагрузку

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

Если сайт, работающий с Postgresql переносится на другой сервер — требуется создать, а потом развернуть на другой машине дамп базы.

Источник

Оцените статью
Adblock
detector