Как запустить сервер postgresql linux

Содержание
  1. Работаем с PostgreSQL через командную строку в Linux
  2. Установка PostgreSQL на Linux (Mint)
  3. PostgreSQL Подключение, Пользователи (Роли) и Базы Данных
  4. PostgreSQL создание новой роли и базы данных
  5. Включить удаленный PostgreSQL доступ для пользователей
  6. Полезные команды PostgreSQL
  7. Выбор shema psql в консоли:
  8. Sequences
  9. Linux и Windows: помощь админам и пользователям
  10. Администрируем и настраиваем Windows, Linux.
  11. 15 команд для управления PostgreSQL
  12. 1. Как изменить root пароль в PostgreSQL?
  13. 2. Как установить PostgreSQL в автозапуск?
  14. 3. Проверяем состояние сервера
  15. 4. Как запустить, остановить, перезапустить PostgreSQL?
  16. 5. Как посмотреть какая версия PostgreSQL запущена?
  17. 5. Как создать пользователя в PostgreSQL?
  18. 6. Как создать базу в PostgreSQL ?
  19. 7. Получаем список всех баз в Postgresql?
  20. 8. Как удалить базу в PostgreSQL?
  21. 9. Пользуемя встроенным хелпом к командам
  22. 10. Как получить список всех таблиц в базе данный в Postgresql?
  23. 11. Как узнать время выполнения запроса?
  24. 12. Как бэкапить и восстанавливать базы и таблицы в PostgreSQL?
  25. 13. Как посмотреть список доступных функций в PostgreSQL ?
  26. 14. Как отредактировать запрос к PostgreSQL в редакторе?
  27. 15. Где я могу найти файл истории postgreSQL?
  28. Комментариев: 10
  29. Как запустить сервер postgresql linux
  30. 18.3.1. Сбои при запуске сервера
  31. 18.3.2. Проблемы с подключениями клиентов

Работаем с PostgreSQL через командную строку в Linux

Установка PostgreSQL на Linux (Mint)

Для подключения к базе данных PostgreSQL понадобится установленный PostgreSQL клиент:

Для установки PostgreSQL сервера:

Проверим, можем ли мы подключиться к базе данных PostgreSQL:

Вывод команды должен быть примерно таким:

PostgreSQL Подключение, Пользователи (Роли) и Базы Данных

Логин в только что установленный postgreSQL сервер нужно производить под именем пользователя postgres:

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

Если такая команда не просит ввести пароль пользователя, то можно еще добавить опцию -W.

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

PostgreSQL создание новой роли и базы данных

Создать новую роль c именем admin (указывайте нужное имя):

Создание новой базы данных:

Дать права роли на базу данных:

Включить удаленный PostgreSQL доступ для пользователей

Нам нужно отредактировать файл /etc/postgresql/ /main/pg_hba.conf, задав опцию md5 вместо peer.

может быть 10, 11, 12 и т.д.

После этого сделать restart PostgreSQL:

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

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

\q

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

\l

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

\dt

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

\du

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

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

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

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

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

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

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

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

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

Выбор shema psql в консоли:

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

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

Sequences

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

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

Источник

Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.

15 команд для управления PostgreSQL

В этой статье я покажу 15 наиболее полезных команд для управления postgreSQL.

Читайте также:  Windows 10 не включается wifi пишет включить вручную

1. Как изменить root пароль в PostgreSQL?

Изменение пароля для обычного пользователя происходит таким же образом. Пользователь root может поменять пароль любому пользователю.

2. Как установить PostgreSQL в автозапуск?

3. Проверяем состояние сервера

4. Как запустить, остановить, перезапустить PostgreSQL?

5. Как посмотреть какая версия PostgreSQL запущена?

5. Как создать пользователя в PostgreSQL?

Для этого существуют два метода..

Метод 1: Создаем пользователя в через PSQL шелл, командой CREATE USER.

Метод 2: Создаем пользователя в через шелл команду createuser.

6. Как создать базу в PostgreSQL ?

Для этого существует 2 метода.

Метод 1: Создаем базу черезе PSQL шелл, с помощью команды CREATE DATABASE.

Метод 2: Используем команду createdb.

7. Получаем список всех баз в Postgresql?

8. Как удалить базу в PostgreSQL?

9. Пользуемя встроенным хелпом к командам

Команда \? отобразит строку помощи для команда PSQL. \h CREATE покажет хелп для всех команд который начинаются с CREATE.

10. Как получить список всех таблиц в базе данный в Postgresql?

Для пустой базы вы получите сообщение “No relations found.”

11. Как узнать время выполнения запроса?

# \timing — после выполения данной команды каждый последующий запрос будет показывать время выполнения.

12. Как бэкапить и восстанавливать базы и таблицы в PostgreSQL?

Этот вопрос довольно велик и я опубликую его позднее отдельной статьей.

13. Как посмотреть список доступных функций в PostgreSQL ?

Для того чтобы получить список доступных функций, скажите \df+

14. Как отредактировать запрос к PostgreSQL в редакторе?

\e откроет редактор, в котором вы можете отредактировать запрос и сохранить его.

15. Где я могу найти файл истории postgreSQL?

/.bash_history, postgreSQL хранит все sql команды в файле

Разное

Лучшие выставочные стенды в Москве. Отличное качество выполнения, невысокие цены.

Курьерская служба, доставка по Москве и Московской области, срочная доставка, рассылки писем, счетов, журналов

Комментариев: 10

Очень хорошая статья, люблю живые примеры

С удовольствием прочитаю статью про бэкапы в postgresql

Спасибо, подборка очень выручила когда пришлось аврально разбираться, как с postgesql работать.

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

продвижение сайтов — SEO www.top5.com.ua и раскрутка в Киеве

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

$ su — root
# tar xvfz postgresql-8.3.7.tar.gz
# cd postgresql-8.3.7
# cp contrib/start-scripts/linux /etc/rc.d/init.d/postgresql
# chmod a+x /etc/rc.d/init.d/postgresql

Не получается :((( команда postgresql status говорит что он остановлен.

Странно. Я пользуюсь Ruby On Rails и у меня иногда удаляется база данных. Причём, непонятно почему.

А так — спасибо за список команд — помогло.

Как посмотреть какая версия PostgreSQL запущена?

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

в то время как простое —help нам подскажет, что достаточно и «psql —version«.

Автор просто скопипастил текст «статьи» откуда-то даже не удосужившись удалить html-тэги.

При написании подобных статей почему-то не учитывается специфика дистрибутива. Да — они все похожи, это не оспоримо, но тем не менее хотелось бы дополнить.

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

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

Читайте также:  Windows 10 портретный режим

Есть команда показывающая место расположения базы данных:

Как понимаю 1 row — это означает первая база. Как посмотреть вторую?

Источник

Как запустить сервер postgresql linux

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

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

Самый прямолинейный вариант запуска сервера вручную — просто выполнить непосредственно postgres , указав расположение каталога данных в ключе -D , например:

В результате сервер продолжит работу на переднем плане. Запускать эту команду следует под именем учётной записи PostgreSQL . Без параметра -D сервер попытается использовать каталог данных, указанный в переменной окружения PGDATA . Если и эта переменная не определена, сервер не запустится.

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

Важно где-либо сохранять информацию, которую выводит сервер в каналы stdout и stderr , как показано выше. Это полезно и для целей аудита, и для диагностики проблем. (Более глубоко работа с файлами журналов рассматривается в Разделе 24.3.)

Программа postgres также принимает несколько других параметров командной строки. За дополнительными сведениями обратитесь к справочной странице postgres и к следующей Главе 19.

Такой вариант запуска довольно быстро может оказаться неудобным. Поэтому для упрощения подобных задач предлагается вспомогательная программа pg_ctl . Например:

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

Обычно возникает желание, чтобы сервер баз данных сам запускался при загрузке операционной системы. Скрипты автозапуска для разных систем разные, но в составе PostgreSQL предлагается несколько типовых скриптов в каталоге contrib/start-scripts . Для установки такого скрипта в систему требуются права root.

В различных системах приняты разные соглашения о порядке запуска служб в процессе загрузки. Во многих системах для этого используется файл /etc/rc.local или /etc/rc.d/rc.local . В других применяются каталоги init.d или rc.d . Однако при любом варианте запускаться сервер должен от имени пользователя PostgreSQL , но не root или какого-либо другого пользователя. Поэтому команду запуска обычно следует записывать в форме su postgres -c ‘. ‘ . Например:

Ниже приведены более конкретные предложения для нескольких основных ОС. (Вместо указанных нами шаблонных значений необходимо подставить правильный путь к каталогу данных и фактическое имя пользователя.)

Для запуска во FreeBSD воспользуйтесь файлом contrib/start-scripts/freebsd в дереве исходного кода PostgreSQL .

В OpenBSD , добавьте в файл /etc/rc.local следующие строки:

В системах Linux вы можете либо добавить

в /etc/rc.d/rc.local или в /etc/rc.local , либо воспользоваться файлом contrib/start-scripts/linux в дереве исходного кода PostgreSQL .

Используя systemd , вы можете применить следующий файл описания службы (например, /etc/systemd/system/postgresql.service ):

Для использования Type=notify требуется, чтобы сервер был скомпилирован с указанием configure —with-systemd .

Особого внимания заслуживает значение тайм-аута. На момент написания этой документации по умолчанию в systemd принят тайм-аут 90 секунд, так что процесс, не сообщивший о своей готовности за это время, будет уничтожен. Но серверу PostgreSQL при запуске может потребоваться выполнить восстановление после сбоя, так что переход в состояние готовности может занять гораздо больше времени. Предлагаемое значение 0 отключает логику тайм-аута.

Читайте также:  Не работает микрофон через переходник windows 10

В NetBSD можно использовать скрипт запуска для FreeBSD или для Linux , в зависимости от предпочтений.

В Solaris , создайте файл с именем /etc/init.d/postgresql , содержащий следующую стоку:

Затем создайте символическую ссылку на него в каталоге /etc/rc3.d с именем S99postgresql .

18.3.1. Сбои при запуске сервера

Есть несколько распространённых причин, по которым сервер может не запуститься. Чтобы понять, чем вызван сбой, просмотрите файл журнала сервера или запустите сервер вручную (не перенаправляя его потоки стандартного вывода и ошибок) и проанализируйте выводимые сообщения. Ниже мы рассмотрим некоторые из наиболее частых сообщений об ошибках более подробно.

Это обычно означает именно то, что написано: вы пытаетесь запустить сервер на том же порту, на котором уже работает другой. Однако если сообщение ядра не Address already in use или подобное, возможна и другая проблема. Например, при попытке запустить сервер с номером зарезервированного порта будут выданы такие сообщения:

может означать, что установленный для вашего ядра предельный размер разделяемой памяти слишком мал для рабочей области, которую пытается создать PostgreSQL (в данном примере 4011376640 байт). Такая ситуация возможна, только если в shared_memory_type выбран вариант sysv . В этом случае можно попытаться запустить сервер с меньшим числом буферов (shared_buffers) или переконфигурировать ядро и увеличить допустимый размер разделяемой памяти. Вы также можете увидеть это сообщение при попытке запустить несколько серверов на одном компьютере, если запрошенный ими объём памяти в сумме превышает установленный в ядре предел.

не означает, что у вас закончилось место на диске. Это значит, что установленное в вашем ядре предельное число семафоров System V меньше, чем количество семафоров, которое пытается создать PostgreSQL . Как и в предыдущем случае можно попытаться обойти эту проблему, запустив сервер с меньшим числом допустимых подключений (max_connections), но в конце концов вам придётся увеличить этот предел в ядре.

18.3.2. Проблемы с подключениями клиентов

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

Это общая проблема « я не могу найти сервер и начать взаимодействие с ним » . Показанное выше сообщение говорит о попытке установить подключение по TCP/IP. Очень часто объясняется это тем, что сервер просто забыли настроить для работы по протоколу TCP/IP.

Кроме того, при попытке установить подключение к локальному серверу через Unix-сокет можно получить такое сообщение:

Путь в последней строке помогает понять, к правильному ли адресу пытается подключиться клиент. Если сервер на самом деле не принимает подключения по этому адресу, обычно выдаётся сообщение ядра Connection refused (В соединении отказано) или No such file or directory (Нет такого файла или каталога), приведённое выше. (Важно понимать, что Connection refused в данном контексте не означает, что сервер получил запрос на подключение и отверг его. В этом случае были бы выданы другие сообщения, например, показанные в Разделе 20.15.) Другие сообщения об ошибках, например Connection timed out (Тайм-аут соединения) могут сигнализировать о более фундаментальных проблемах, например, о нарушениях сетевых соединений.

Источник

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