実際、私はPostgreSQL 9.4(postGIS拡張付き)をインストールしましたが、インストールすると、すべて正常に機能していました。
多くのtutで述べたように、/ dataフォルダーの設定、構成ファイルの確認などを行いました。他のプロジェクトで作業していたため、しばらくpsqlで作業しませんでしたが、インストールが完了すると、以前は正しく機能していました。テストデータベースを作成し、postgresユーザーを初期化しました。
今、私は(デフォルトのpostgresユーザーで)psqlを起動しようとしましたが、接続できません!サービスの開始/停止/再開は何も変更しません...
「psql」コマンドの結果(postgresユーザーを使用):
psql: could not connect to server: No such file or directory
Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
サービスのステータスを確認すると、次のようになります。
postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)
Active: active (exited) since tue 2016-05-24 09:24:13 CEST; 3s ago
Process: 5658 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 5658 (code=exited, status=0/SUCCESS)
コマンドによるサービスの開始/停止/再開
Sudo service postgresql start (or restart or stop)
実際のシステム動作に何も変更しません。
ログは言う:
DETAIL: Permissions should be u=rwx (0700).
FATAL: data directory "/var/lib/postgresql/9.4/main" has group or world access
Debianシステムでは、postgresqlのファイルとディレクトリは、グループpostgres
のユーザーpostgres
が所有し、0700
(ディレクトリ)または0600
(ファイル)。
そうでない場合は、次の方法で権限と所有権を修復できます。
Sudo chown -R postgres:postgres /var/lib/postgresql/9.4/
Sudo chmod -R u=rwX,go= /var/lib/postgresql/9.4/
X
コマンドの大文字のchmod
に注意してください。小文字のx
とは異なり、ディレクトリとファイルに実行ビットonlyが設定されます既に実行可能ファイル(pgディレクトリにあるものはありません)。
その後、postgresqlサービスを再起動します。
権限/所有権を誤って変更した後、この問題が発生しました。次のコマンドを発行することで、元に戻すことができました。
Sudo chown -R postgres:postgres /var/lib/postgresql/11/
Sudo chmod -R u=rwX,go= /var/lib/postgresql/11/
そしてサービスをリロードします
Sudo service postgresql restart
Postgresサーバーが稼働していることが確かな場合は、ホストをlocalhostとして指定してログインを試みます。自分でpsqlと言うと、ソケットを使用して接続しようとしています。
Postgresをアップグレードし、古いサーバーに引き続きアクセスしたいときに、この問題が発生しました。新しいpsqlが混乱しました。
試してください:
psql -U username -h localhost