Встановити postgresql. Чому initdb недоступний?


15

Я дотримуюсь цих інструкцій , проте я можу лише перейти до кроку 17.2.

Незважаючи на встановлення postgresql успішно через

sudo apt-get install postgresql

команда, при запуску

initdb -D /usr/local/pgsql/data

Ubuntu каже мені, що він "initdb" не встановлений. Вказівки говорять мені, що ця команда встановлена

sudo apt-get install postgresql

так що відбувається? Я можу зробити доступним initdb, встановивши postgres-xc, але я думаю, що postgres-xc - це лише якийсь дивний сторонній сміття, і це не детально описано в інструкціях. Будь-які ідеї?

Відповіді:


14

initdbпризначений для запуску під обліковим записом користувача postgres, який створюється під час встановлення. Після установки postgresql ви можете зробити:

sudo su - postgres

Тоді ви повинні мати можливість бігати initdb.


4
Цитування з /usr/share/doc/postgresql-common/README.Debian.gz:Please note that you can of course also use the upstream tools for creating clusters, such as initdb(1). However, please note that in this case you cannot expect *any* of above pg_* tools to work, since they use different configuration settings and file locations. If in doubt, then do *not* use initdb, but only pg_createcluster. Since merely installing postgresql-X.Y will already set up a default cluster which is ready to work, most people do not need to bother about initdb or pg_createcluster at all.
cdaddr

3
Навіть після переходу на користувача postgres я все-таки отримую цю помилку
Cogwheel

Це не працює для мене в Ubuntu Server 14 за допомогою Postgres 9.6.
судо

Це не працює, оскільки initdbзнаходиться в /usr/lib/postgresql/X.X/bin/.
Лі Донг

27

Ви знайдете initdbпід /usr/lib/postgresql/x.y/bin/. Дивіться також /usr/share/doc/postgresql-common/README.Debian.gzдокладнішу інформацію про налаштування на Debian та Ubuntu.


Це дійсно має бути прийнятою відповіддю. initdbє базовою командою, але користувачі Debian і Ubuntu повинні використовувати pg_createcluster та пов'язаний з ним набір команд. Крім того, вам зазвичай не потрібно initdbАБО pg_createclusterпісля, apt-get install postgresqlтому що стандартна установка вже створює кластер за замовчуванням із сервером і базами даних за замовчуванням / шаблоном для вас. Згадане вище слово "Петрознавство" Петра варте вашого часу для читання.
cdaddr

2
@cdaddr Ні, зазвичай вам це не потрібно після встановлення постгресів. Тим не менш, якщо вам знадобиться швидко відтворити кластер і не хочете займатись перевстановленням postgres або якщо вам потрібно ініціалізувати нову базу даних у нестандартному місці, це може стати в нагоді. Так що так, це чудова відповідь.
Ератьєль

1
Працює. І це найкраще, тому що таким чином я можу бути впевнений, яку версію я використовую.
судо

ми шукаємо initdb тому, що, підручник говорить так, postgresql.org/docs/10/static/creating-cluster.html
nerkn

2

initdbне встановлено як виконуваний користувачем. Встановлюється лише в /usr/lib/postgresql/X.X/bin/, тому що це завжди залежить від версії. initdbможе бути виконаний лише з цього конкретного каталогу.

Як було сказано в інших відповідях, встановлення postgres створює каталог за замовчуванням, який може бути в обмеженому розділі. Користувачі можуть змінити це, але для цього потрібні й інші кроки. дивіться тут .


-2

виконайте наступні кроки з root 1.passwd postgres ваш пароль, а потім 2.su postgres 3.psql 4. створіть користувача свого імені користувача, наприклад "СТВОРИТИ КОРИСТУВАЧ САМО;" 5.створити сам базу даних; тепер вийдіть з 6.type psql для свого користувача


Ця відповідь взагалі не стосується питання.
cdaddr
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.