sql >> データベース >  >> RDS >> PostgreSQL

psql:サーバーに接続できませんでした:そのようなファイルまたはディレクトリはありません(Mac OS X)

    警告: postgresが実際に存在しないことを確認せずにpostmaster.pidを削除した場合 あなたを実行しているプロセスは、データベースを永久に破壊する可能性があります 。 (ポストマスターが終了した場合、PostgreSQLは自動的に削除する必要があります。)

    解決策:これで問題が修正されました。このファイルを削除すると、すべてが機能しました。

    /usr/local/var/postgres/postmaster.pid
    

    -

    これが、なぜこれを削除する必要があるのか​​を私が理解した方法です。

    1. 次のコマンドを使用して、実行中のPGプロセスがあるかどうかを確認しました。私にとっては何もありませんでした。PGサーバーを起動することすらできませんでした:

      ps auxw | grep post
      
    2. 上記のエラーメッセージに含まれていたファイル.s.PGSQL.5432を検索しました。次のコマンドを使用しました:

      sudo find / -name .s.PGSQL.5432 -ls
      

      コンピューター全体を検索しても何も表示されなかったため、ファイルは存在しませんでしたが、明らかにpsql 「望んでいた」または「そこにあったと思った」

    3. サーバーログを確認したところ、次のエラーが発生しました:

      cat /usr/local/var/postgres/server.log
      

      サーバーログの最後に、次のエラーが表示されます:

      FATAL:  pre-existing shared memory block (key 5432001, ID 65538) is still in use
      HINT:  If you're sure there are no old server processes still running, remove the shared memory block or just delete the file "postmaster.pid".
      
    4. エラーメッセージのアドバイスに従って、server.logと同じディレクトリにあるpostmaster.pidファイルを削除しました。これで問題が解決し、再起動できました。

    そのため、私のMacBookがフリーズしてハードリブートされたため、Postgresはリブート後もプロセスがまだ実行中であると考えていたようです。このファイルの削除は解決されました。これが他の人に役立つことを願っています!多くの人が同様の問題を抱えていますが、ほとんどの答えはファイルのアクセス許可に関係していましたが、私の場合は状況が異なりました。



    1. Oracleでの外部キー作成の問題

    2. 整数をチェックするSQLLIKE条件?

    3. postgresqlのmysql_insert_id代替

    4. MySQLの日付と時刻の単位(完全なリスト)