PostgreSQL は、多くの Web サイトで使用されている非常に人気のあるデータベース エンジンであり、利用可能なリレーショナル データベース管理システムの中で最も使用されているものの 1 つです。PostgreSQL をインストールすると、それに含まれるいくつかのツールを使用できます。これらのツールの 1 つは、psql と呼ばれるコマンドライン ツールです。今日は、それについて多くのことを学び、システムで有名な「psql コマンドが見つかりません」エラーを修正する方法を学びます。
psql コマンドについて
前述のとおり、psql コマンドは PostgreSQL RDBMS に関連しています。しかし、このコマンドは正確には何をするのでしょうか?それを説明することから始めましょう。
psql は、システムのコマンド ラインまたはターミナルを使用して PostgreSQL RDBMS と対話する機能を提供するコマンド ライン ツールです。
RDBMS を使用または操作するには、さまざまな方法があります。これらのいくつかは、MySQL と呼ばれる別の RDBMS で使用される phpMyAdmin のようなグラフィック プログラムです (PostgreSQL 用のバージョンもあります)。しかし、優れた GUI を備えた優れたソフトウェアを代わりに使用できるのであれば、なぜ誰かが端末を使用するのでしょうか?
端末に慣れている人もいれば、これらのツールで利用できる機能が異なる場合もあります。そのため、RDBMS とやり取りするための GUI があったとしても、端末で利用できる機能が不足している可能性があります。もちろん逆もまた然りです。
psql で何ができますか?
前述のとおり、これは PostgreSQL との接続に使用されるため、さまざまなクエリを発行して、もちろんそれらのクエリの結果を確認できます。より正確には約 30 の多くの関数が含まれていますが、いくつかは他よりも重要なので、これらの関数またはオプションのどれが最も使用されているかを見てみましょう.
- –コマンド :これは広く使用されている psql オプションであり、すでにお察しのとおり、コマンドを発行するために使用されます。この関数は、スクリプトから直接 PostgreSQL でコマンドを実行できるため、PostgreSQL に関連する bash スクリプトでよく使用されます。
- –データベース名 :もう 1 つの非常に重要なオプションです。これを使用すると、PostgreSQL の特定のデータベースに接続して操作できます。このようにして、実行するクエリが適切なデータベースでのみ実行されるようにします。
- –リスト :これは、利用可能なすべてのデータベースを一覧表示するために使用される非常に単純な機能です。ええ、これですべてですが、たとえばデータベースが欠落しているかどうかを確認するのに非常に役立ちます。
- –静か :あまり読みたくない場合に非常に便利な機能です。実行されたコマンドが画面に返す可能性のあるすべてのメッセージを自動的に抑制します。これは、役に立たないデータが大量に出力される場合など、状況によっては便利ですが、実際に出力を確認する必要がある場合は使用したくない場合もあります。
- –ユーザー名 :このオプションを使用すると、デフォルトの psql セッションの代わりにユーザー名を使用してデータベースに接続できます。
- –パスワードなし :このオプションはパスワード プロンプトを無効にするため、psql ツールの使用中にパスワード リクエストを取得することはできません。この場合、パスワードをファイルに保存し、そこから取得する必要があります。これは、パスワードを必要とする自動スクリプトを実行する必要がある場合にも使用できます。この場合、パスワードを安全なファイルに保存して、スクリプトがそこから読み取ることができるようにする必要があります。
- –パスワード :これは前のオプションの反対です。つまり、使用時にパスワードを要求されます。 psql は、データベースへの接続またはクエリの実行を試みるときにパスワードを要求します。ほとんどの場合、この機能は PostgreSQL の構成でデフォルトで有効になっているため、ターミナルで使用する必要がない場合があります。
Linux で psql コマンドが見つからないというエラーを修正するにはどうすればよいですか?
psql とは何か、それを使用して PostgreSQL データベースと対話する方法について説明したので、このツールに関連する最も一般的な問題の 1 つである、見つからないエラーを解決する方法を見てみましょう。
psql command not found エラーに遭遇したことがある場合は、何か間違ったことをしているかもしれませんし、そうでないかもしれません。解決策を説明する前に、ここで何が起こっているか見てみましょう。
psql not found エラーが表示された場合、psql のバイナリ/実行可能ファイルがユーザーの PATH に見つからなかったことを意味します . PostgreSQL がどのようにインストールされたかによって、PATH に配置される場合と配置されない場合があります。
PostgreSQL をまだインストールしていない場合にも、このエラーが発生する可能性があります。その場合の解決策は、もちろんインストールしてから再度確認することです。
しかし、PostgreSQL がインストールされているのに、それでもこのエラーが発生する場合はどうでしょうか?心配はいりません。この問題を解決するのは非常に簡単です。この解決策は、CentOS システムと Ubuntu システムの両方で機能し、実際にはほとんどの Linux ディストリビューションで機能します。
まず、「updatedb」と呼ばれる非常に便利なコマンドを実行してみましょう。これは、最近ではほとんどのディストリビューションに「locate」ツールの一部としてデフォルトで含まれています。完了するまでに数分間実行される場合があります:
updatedb
完了すると、ロケート キャッシュ データベースが更新され、それを使用して psql コマンドの正確な場所を見つけることができるので、これをシェルで実行してみましょう:
locate psql
バイナリの正確なパスが見つかったら、シンボリック リンクを作成するだけです .たとえば、psql バイナリがパス「/usr/lib/postgresql/9.5/bin/psql」で見つかった場合、次のコマンドを発行してシンボリック リンクを作成するだけです。
ln -s /usr/lib/postgresql/9.5/bin/psql /usr/bin/psql
このようにして、バイナリが PATH で利用可能になり、シェルで「psql」と入力するだけですばやく実行できるようになります。これは、psql コマンドが見つからないというエラーを解決する最も簡単で迅速な方法です。
まとめ
そこで今日は、PostgreSQL でコマンドとクエリを発行するためにシェルで使用される psql ツールについてもう少し学びました。このツールは、この RDBMS に接続する bash スクリプトでも使用できます。
また、このツールに関連する最も一般的なエラーの 1 つである psql command not found エラーを修正する方法も知っています。このソリューションは非常に簡単で、ほとんどの Linux ディストリビューションと互換性があり、バイナリをユーザーの PATH に追加するためのシンボリック リンクのみが必要です。
参照:
- PGSQL ドキュメント