Статьи

Установка PostgreSQL на Fedora

Я купил (и начал читать) книгу « Семь баз данных за семь недель» , чтобы лучше понять различные парадигмы SQL / NoSQL. Каковы плюсы и минусы каждого подхода и поиграть с каждым типом.

В этом посте я хочу рассказать о процессе установки, который у меня был с PostgreSQL на Fedora. Я напишу другой пост о самой книге.

Установка

Я не знаю почему, но установка PostgreSQL на Fedora оказалась не такой простой, как ожидалось. Мне потребовалось несколько попыток, чтобы заставить это работать.

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

Ошибки

Во время моих попыток я получил несколько ошибок.

Самый раздражающий был:

psql: could not connect to server: No such file or directory
 Is the server running locally and accepting
 connections on Unix domain socket "/var/lib/pgsql/.s.PGSQL.5432"?

Я тоже получил

FATAL:  could not create lock file "/var/run/postgresql/.s.PGSQL.5432.lock": Permission denied

Иногда порт 5432 уже используется.

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

Инструкции по установке: http://www.postgresql.org/download/linux/redhat/

Первые шаги

# install postgresql on the machine
sudo yum install postgresql-server
 
# fill the data directory (AKA init-db)
# REMEMBER - here it is: /var/lib/pgsql/data/
sudo postgresql-setup initdb
 
# Enable postgresql to be started on bootup:
# (I hope it works...)
sudo systemctl enable postgresql.service

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

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

Вы не можете запустить сервер как sudo.

Так как я (пока) не эксперт по Linux, мне пришлось выяснить, что без пароля для postgres мне нужно будет получить suправа root.

Авторизоваться

# Login
sudo -s
# password for root...
 
# switch to postgres
su - postgres

Следующим шагом было запустить сервис.

Это была болезненная проблема. Хотя очень радует после успеха. Внимательно изучив сообщение об ошибке и немного погуглив, я решил добавить -D к командам.

Я не пробовал это раньше, так как думал, что в этом нет необходимости, потому что я добавил PGDATA.
В конце концов я не использую это.

Так что это команда, которая работала для меня:

pg_ctl start -D /var/lib/pgsql/data/

И что теперь…?

В моих первых попытках всякий раз, когда я пытался запустить команду PG (psql, creationb), я получал досадную ошибку, описанную выше. Но теперь это сработало!

Как пользователь postgres я запустился psqlи вошел в систему. После этого я мог начать работать над книгой.

Некоторые советы

  • Не забудьте добавить точку с запятой в конце команд 🙂
create extension tablefunc;
create extension dict_xsyn;
create extension fuzzystrmatch;
create extension pg_trgm;
create extension cube;
  • Мне не нужно было изменять какой-либо файл конфигурации (т.е. pg_hba.conf).
  • README файл /usr/share/doc/postgresql/README.rpm-dist
  • Колорадо

отказ

Этот пост был сделан из заметок, которые я написал себе во время жесткой установки. Я уверен, что это не самый лучший (а может и так?). В следующих постах я поделюсь прогрессом чтения книги.

Я добавил проект GitHub с кодом, который я пишу, читая книгу.
https://github.com/eyalgo/seven-dbs-in-seven-weeks

(РЕДАКТИРОВАТЬ — я написал этот пост в 2 часа ночи, поэтому я надеюсь, что нет никаких серьезных ошибок)