Я купил (и начал читать) книгу « Семь баз данных за семь недель» , чтобы лучше понять различные парадигмы 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 часа ночи, поэтому я надеюсь, что нет никаких серьезных ошибок)