GNU/Linux >> Znalost Linux >  >> Linux

Vytvořte databázi PostgreSQL bez oprávnění root

PostgreSQL můžete spustit bez root priv vytvořením nové instance (kterou PostgreSQL nazývá „klastr“) a jejím spuštěním.

Nemůžete používat init skripty Ubuntu, nástroje pro obálkování jako pg_ctlcluster atd., pokud to uděláte. Musíte používat pouze vlastní nástroje PostgreSQL.

Chcete-li vytvořit novou instanci PostgreSQL se superuživatelem rovným vašemu uživatelskému jménu, datovému adresáři ve vašem domovském adresáři a standardně povoleným md5 auth, použijte:

initdb -D $HOME/my_postgres -A md5 -U $USER

Upravte podle potřeby; viz initdb --help .

Poté budete muset upravit postgresql.conf pro změnu port na jiný než výchozí, protože váš systém pravděpodobně provozuje svůj vlastní postgres na výchozím portu 5432. (Pokud chcete omezit přístup přísně na vás, můžete místo toho nastavit listen_addresses = '' a unix_socket_directories = /home/myuser/postgres_socket nebo cokoli jiného. Ale je jednodušší použít jiný port.)

Chcete-li to spustit:

pg_ctl -D $HOME/my_postgres -w start

Chcete-li se k němu připojit, zadejte port, který jste vybrali:

psql -p 5434 ...

(Pokud jste změnili unix_socket_directories budete také chtít zadat cestu, kterou jste zadali, například -h /home/myuser/postgres_socket .)

Chcete-li vytvořit psql atd. ve výchozím nastavení se připojte k vašemu postgresu, upravte ~/.bashrc přidat něco jako

export PGPORT=5434

ale všimněte si, že to také ovlivní výchozí port pro připojení k jiným hostitelům.

Chcete-li to zastavit:

pg_ctl -D $HOME/my_postgres -w stop

ale můžete ho také jednoduše vypnout bez zastavení, je mu to jedno a při dalším spuštění se bezpečně obnoví.

Chcete-li jej automaticky spustit, když se přihlásíte, když je nastaven ve vašem domovském adresáři, budete muset použít funkce spuštění při spuštění vašeho desktopového prostředí. Liší se v závislosti na prostředí a verzi, takže zde nemohu uvést podrobnosti; je to jiné pro GNOME 3, Unity (ubuntu), KDE, XFCE atd.

Všimněte si, že tento přístup stále používá systémové balíčky pro PostgreSQL. To je důležité, protože pokud odinstalujete (řekněme) PostgreSQL 9.4 a nainstalujete 9.6, vaše kopie ve vašem domovském adresáři přestane fungovat. Pokud chcete, aby byl zcela nezávislý na systémových balíčcích, což pravděpodobně děláte, pokud systém neovládáte, měli byste zkompilovat PostgreSQL ze zdroje nebo použít binární instalační program k instalaci do vašeho domovského adresáře.


Linux
  1. Instalovat zsh bez přístupu root?

  2. Jak vytvořit extra uživatele root?

  3. Vazba na porty menší než 1024 bez přístupu root

  1. Jak vytvořit databázi v MySQL pomocí MySQL Workbench

  2. Databázový server PostgreSQL

  3. Změnit root heslo pomocí Sudo, bez Su?

  1. Jak vytvořit databázi v cPanel

  2. Jak zálohovat a obnovovat databázi v PostgreSQL

  3. Vytvářejte a rušte role v PostgreSQL