GNU/Linux >> Znalost Linux >  >> Linux

Příkaz psql nebyl nalezen

PostgreSQL je velmi oblíbený databázový stroj používaný mnoha weby, je jedním z nejpoužívanějších dostupných systémů pro správu relačních databází a po jeho instalaci můžeme využívat některé nástroje, které obsahuje. Jedním z těchto nástrojů je nástroj příkazového řádku nazvaný psql a dnes se o něm hodně dozvíme a o tom, jak opravit slavnou chybu „psql command not found“ ve vašich systémech.

O příkazu psql

Takže jak jsme řekli, příkaz psql souvisí s PostgreSQL RDBMS. Ale co přesně tento příkaz dělá? Začněme vysvětlením.

psql je nástroj příkazového řádku, který nám umožňuje komunikovat s PostgreSQL RDBMS pomocí příkazového řádku nebo terminálu našeho systému.

Existují různé způsoby použití nebo interakce s RDBMS. Některé z nich jsou grafické programy jako phpMyAdmin, který se používá pro jiný RDBMS s názvem MySQL (existuje jeho verze i pro PostgreSQL), a existují méně grafické způsoby, jako je příkazový řádek nebo terminál. Ale proč by někdo používal terminál, když místo něj lze použít pěkný software s pěkným GUI?

Někteří lidé jsou více zvyklí na terminál a v některých případech se funkce dostupné v těchto nástrojích liší, takže i když máte GUI pro interakci s RDBMS, můžete postrádat funkci, která je dostupná v terminálu, a samozřejmě naopak.

Co mohu dělat s psql?

Jak jsme řekli, používá se pro spojení s PostgreSQL, takže pak můžeme zadávat různé dotazy a samozřejmě vidět výsledky těchto dotazů. Zahrnuje spoustu funkcí, přesněji asi 30, ale některé jsou důležitější než jiné, takže se pojďme podívat, které z těchto funkcí nebo možností se používají nejvíce.

  • –příkaz :toto je široce používaná volba psql, a jak jste již možná uhodli, používá se k vydání příkazu. Tato funkce se hodně používá v bash skriptech souvisejících s PostgreSQL, protože nám umožní spouštět příkazy v PostgreSQL přímo ze skriptu.
  • –dbname :další velmi důležitá možnost, tato nám umožní připojit se ke konkrétní databázi v PostgreSQL, abychom s ní mohli pracovat. Tímto způsobem zajistíme, že dotazy, které spustíme, budou provedeny pouze ve správné databázi.
  • –seznam :toto je docela přímočará funkce, která se používá k výpisu všech dostupných databází. Ano, to je vše, ale je velmi užitečné zkontrolovat, zda nám například nechybí databáze.
  • – tichý :funkce, která je velmi užitečná, pokud nechceme moc číst, automaticky potlačí všechny zprávy, které se nám provedený příkaz může vrátit na obrazovku. To může být užitečné v některých situacích, například když se tiskne příliš mnoho zbytečných dat, ale v jiných případech to nemusíme chtít použít, pokud se opravdu potřebujeme podívat na výstup.
  • –uživatelské jméno :pomocí této možnosti se můžeme připojit k databázi pomocí uživatelského jména namísto výchozí relace psql.
  • –bez hesla :tato možnost deaktivuje výzvu k zadání hesla, takže při používání nástroje psql nebudeme moci získat požadavek na heslo. V tomto případě bude nutné hesla uložit do souboru a získat odtud. Toho lze také využít, když potřebujeme spustit automatický skript, který vyžaduje heslo, v tomto případě bychom měli mít heslo uložené v zabezpečeném souboru, aby jej odtud skript mohl přečíst.
  • –heslo :jedná se o opak předchozí možnosti, což znamená, že při jejím použití budeme požádáni o heslo. psql požádá o heslo, když se pokusíme připojit k databázi nebo spustit dotaz. Ve většině případů je tato funkce povolena ve výchozím nastavení v konfiguraci PostgreSQL, takže ji možná nebudeme muset používat v terminálu.

Jak mohu opravit chybu příkazu psql not found v Linuxu?

Nyní, když jsme vysvětlili, co přesně je psql a jak jej lze použít k interakci s databázemi PostgreSQL, podívejme se, jak můžeme vyřešit jeden z nejběžnějších problémů spojených s tímto nástrojem:nenalezenou chybu.

Pokud někdy narazíte na chybu příkazu psql nenalezeno, pak možná děláte něco špatně, ale také ne. Než vysvětlíme řešení, podívejme se, co se zde děje.

Když se zobrazí chyba psql not found, znamená to, že binární/spustitelný soubor pro psql nebyl nalezen v PATH vašeho uživatele . V závislosti na tom, jak byl PostgreSQL nainstalován, může nebo nemusí být umístěn ve vaší PATH.

Tuto chybu můžeme dostat také v případě, že jsme PostgreSQL ještě nenainstalovali, v takovém případě je řešením samozřejmě jej nainstalovat a poté znovu zkontrolovat.

Ale co když je PostgreSQL nainstalován, ale přesto se vám tato chyba stále zobrazuje? No, nebojte se, je docela snadné tento problém vyřešit a toto řešení funguje pro systémy CentOS i Ubuntu a vlastně pro většinu distribucí Linuxu.

Nejprve spusťte velmi užitečný příkaz s názvem ‚updatedb‘, který je v dnešní době standardně součástí většiny distribucí jako součást nástroje ‚locate‘. Před dokončením může několik minut běžet:

updatedb

Po dokončení bude databáze locate cache aktualizována a můžeme ji použít k nalezení přesné polohy příkazu psql, takže to spusťte v našem shellu:

locate psql

Jakmile je nalezena přesná cesta binárního souboru, musíme pouze vytvořit symbolický odkaz . Pokud byl například binární soubor psql nalezen v cestě ‚/usr/lib/postgresql/9.5/bin/psql‘, stačí zadat následující příkaz k vytvoření symbolického odkazu:

ln -s /usr/lib/postgresql/9.5/bin/psql /usr/bin/psql

Tímto způsobem bude binární soubor dostupný v naší PATH a my jej budeme moci rychle spustit pouhým zadáním „psql“ do našeho shellu. Toto je nejjednodušší a nejrychlejší způsob, jak vyřešit chybu příkazu psql nenalezeno.

Shrnutí

Dnes jsme se tedy dozvěděli něco více o nástroji psql, který se používá v shellu k zadávání příkazů a dotazů v PostgreSQL a lze jej také použít v bash skriptech, které se připojují k tomuto RDBMS.

Víme také, jak opravit chybu příkazu psql nenalezeno, což je jedna z nejčastějších chyb souvisejících s tímto nástrojem. Řešení je docela snadné a je kompatibilní s většinou linuxových distribucí a vyžaduje pouze symbolický odkaz pro přidání binárního souboru do uživatelské PATH.

Odkazy:

  • Dokumentace PGSQL
Příkaz psql nenalezen byl naposledy upraven:3. června 2020 Estebanem Borgesem
Linux
  1. Subscription-manager:příkaz nenalezen

  2. dnf:příkaz nenalezen

  3. bc:příkaz nenalezen

  1. dpkg:příkaz nenalezen

  2. id:příkaz nenalezen

  3. w:příkaz nenalezen

  1. ifrename:příkaz nenalezen

  2. df:příkaz nenalezen

  3. du:příkaz nenalezen