psql 接続エラーを解決します:「サーバーに接続できませんでした – そのようなファイルまたはディレクトリはありません」
PostgreSQL は自らを最先端のオープンソース データベース アプリケーション プラットフォームとして宣伝しており、Debian Linux にはそれをさらに複雑にするパッケージが確かにたくさんあります。 Ubuntu Server やさまざまな Ubuntu スピンを使用している場合は、PostgreSQL 用の大量のパッケージを見つけることもできます。これらは Debian のコアに基づいているためです。このレベルの複雑さと開発により、「サーバーに接続できませんでした」や「そのようなファイルまたはディレクトリはありません」という警告がさらに煩わしくなります。
幸いなことに、これらは通常、PostgreSQL が postgres という名前のユーザーにこれらのディレクトリを保持させたいという事実によって引き起こされるアクセス許可の問題の単純なケースです。簡単なコマンドラインのトリックを使用すると、この問題をほぼ即座に修正できます。ただし、これが実際に直面している問題であることを確認するために、事前にいくつかの基本的な診断チェックを行っておくとよいでしょう。
PostgreSQL がサーバーに接続できないエラーを修正する
まず、PostgreSQL システムを手動で再起動してみます。問題を解決するにはこれで十分な場合もありますが、そうでない場合は、少なくともエラー メッセージが表示されます。おそらく、postgres ユーザーとして psql コマンドを発行してシステムを再起動するだけです。
これですべてが解決したことがわかるかもしれません。そうしないと、「psql:サーバーに接続できませんでした:そのようなファイルまたはディレクトリはありません」という行が表示される可能性があります。これは、権限に問題があることを意味します。このエラー メッセージが表示された場合は、他のテキストも吐き出されます。
このメッセージが表示された場合は、サービスのステータスをチェックして、モジュールがロードされていることを確認してください。そうあるべきですが、そうでない場合は再起動することをお勧めします。 「ロード済み:ロード済み (/lib/systemd/system/postgresql.service; 有効)」というメッセージが表示された場合、それらは実行されています。 sudo サービス postgresql の再起動を試してください。 簡単に再起動して、何かが修正されるかどうかを確認するだけです。通常はそうではありませんが、場合によっては試してみる価値があるかもしれません。
それでも問題が解決しない場合は、PostgreSQL ログ内を調べてエラーを探してください。まれに、パッケージ エラーに関する何かが見つかった場合は、SQL モジュールの 1 つが欠落している可能性があります。通常、これが問題の原因ではありませんが、少なくとも確認してみても損はありません。おそらく、実際には「権限は u=rwx (0700) である必要があります」という警告メッセージに遭遇することになるでしょう。
ただし、実行している SQL サーバーによっては、異なるバージョン番号が表示される場合があります。
これは、Debian および同様のディストリビューションでは、セキュリティ上の理由から、postgres ユーザーとグループがこれらのディレクトリを 0700 権限で制御し、すべてのファイルを 0600 権限で制御することを想定しているためです。端末で次のコマンドを実行して権限を修正するだけです。
sudo chown -R postgres:postgres /var/lib/postgresql/9.6/ &&sudo chmod -R u=rwX,go=/var/lib/postgresql/9.6/
これらのファイル許可オプションを設定する特定の方法があるため、これは、一般的な小文字の x ではなく、大文字の X である必要があることに注意してください。これを行うには root アクセスが必要ですが、これら 2 つの sudo マークを含めるだけで、通常のユーザーとして実行するときに適切な権限を与えるのに十分です。 Ubuntu と、Ubuntu から派生したさまざまな Linux 実装はメインの root アカウントをハッシュアウトするため、これは重要です。そのため、この方法で作業を行う必要があります。
このコマンドが完了したら、sudo service postgresql restart によってサービスを再度再起動できます。 ターミナルから実行すると、今回はエラーは発生しないはずです。ログを見てみると、権限の問題に関する警告ももう存在していないはずです。
これは、かなり特殊な条件の結果として発生するエラーであるため、PostgreSQL ディレクトリのアクセス許可操作を伴う操作を手動で行わない限り、最初に修正した後は再び発生することはありません。そもそもこの問題を修正する以外に、これが本当に必要になる状況はありません。
著者について
ケビン・アロウズ
Kevin Arrows は、10 年以上の業界経験を持つ、経験と知識が豊富なテクノロジー スペシャリストです。彼は Microsoft Certified Technology Specialist (MCTS) 認定を取得しており、最新の技術開発について常に最新の情報を入手することに深い情熱を持っています。 Kevin は、ソフトウェア開発、サイバーセキュリティ、クラウド コンピューティングなどの分野での専門知識と専門知識を示し、テクノロジー関連の幅広いトピックについて幅広く執筆しています。テクノロジー分野への彼の貢献は同僚から広く認められ、尊敬されており、複雑な技術概念を明確かつ簡潔に説明する能力が高く評価されています。
-
2024 年の最先端の Linux ディストリビューションを発見
Linux は非常に保守的であるという評判があります。これは、新しいハードウェアがリリースされてもすぐにサポートされるとは限らないという事実が原因である可能性があります。これは、ハードウェア ベンダーが自社の製品がどのように機能するかを他の誰よりもオープンソース ソフトウェア コミュニティと共有していないという事実と関係があります。それにもかかわらず、常に最新の FOSS 製品を提供する最先端のディストリビューションがいくつか存在します。 常に最新のものを提供するディストリビューションを探している場合は、次回オープンソース ワークステーションを構成するときに、これらのディストリビューションの
-
Linux で Wine ファイルの関連付けをクリーンアップする:ステップバイステップ ガイド
Wine を使用して重要なビジネス アプリケーションを実行する場合でも、単に Microsoft Windows でのみ利用できる楽しいゲームをたくさんプレイする場合でも、Wine は実際に Windows プログラムが使用するさまざまな拡張子のファイルの関連付けの登録を開始します。アンインストールしたプログラムの古いものが残っているのは望ましくないかもしれませんし、実際に Wine がデフォルトで関連付けているものに問題が発生する可能性もあります。別のプログラムが偶然同じファイル拡張子を持つファイルを作成した場合、そのファイルをダブルクリックしようとすると、奇妙な競合が発生する可能性がありま