Cách khởi động lại máy chủ PostgreSQL trong CentOS 7


15

Tôi đã cài đặt PostgreSQL 10.1 trong môi trường CentOS 7.3.

Dịch vụ được bắt đầu ( postmaster.pidtệp hiện diện bên dưới /var/lib/pgsql/10/data), nhưng tôi cần tải lại cấu hình hoặc khởi động lại máy chủ sau khi thay đổi pg_hba.conf.

Tuy nhiên, thử các lệnh khác nhau, tôi nhận được như sau:

pg_ctl reload -D /var/lib/pgsql/10/data
bash: pg_ctl: command not found

service postgresql reload
Redirecting to /bin/systemctl reload postgresql.service
Failed to reload postgresql.service: Unit not found.

Câu trả lời:


30

Tôi phát hiện ra rằng bạn cần chỉ định tên chính xác cho dịch vụ PostgreSQL mà bạn có thể tìm thấy trong danh sách các dịch vụ, sử dụng systemctl(cũng xem bài đăng này ):

systemctl list-units|grep postgresql
postgresql-10.service                                                                     loaded active running   PostgreSQL 10 database server

Sau đó, bạn có thể sử dụng service:

service postgresql-10.service reload

hoặc là

service postgresql-10.service restart

Ngoài ra, bạn có thể sử dụng systemctllệnh:

/bin/systemctl reload postgresql-10.service

hoặc là

/bin/systemctl restart postgresql-10.service

5

Nếu bạn có sudogoer là một vai trò trong postgresql, bạn có thể sử dụng thay thế:

sudo systemctl restart postgresql

2
Điều này là sai, đơn vị được gọi làpostgresql-10
Gaius

Điều này không sai. Nó làm việc cho tôi. Ngoài ra đây còn là bằng chứng nữa: linode.com/docs/database/postgresql/ Kẻ
usr

Tệp .service có thể được gọi là bất cứ điều gì bạn muốn. Nó thường nằm ở / usr / lib / systemd / system và có thể được đổi tên theo ý bạn. Nếu bạn tùy chỉnh nó, bạn nên chuyển nó sang / etc / systemd / system
medley56

1
$ sudo systemctl restart postgresql-10

Hoặc tốt hơn:

$ /usr/pgsql-10/bin/pg_ctl reload

Hoặc đầu tiên (một lần):

    $ sudo ln -s /usr/pgsql-10/bin/pg_ctl /usr/bin/pg_ctl

và sau đó (mọi lúc):

    $ pg_ctl reload

Lưu ý: pg_ctlkhông thể chạy dưới quyền root .


0

Tôi không biết tệp dịch vụ của bạn được thiết lập như thế nào nên tôi không thể gỡ lỗi lệnh systemd của bạn. Có thể nó được đặt tên là một cái gì đó khác nhau như Sebastien gợi ý.

Đối với pg_ctl, đó là kết quả của việc cài đặt không thêm thư mục vào đường dẫn. (Có những lý do cho điều này được đề cập trong các ý kiến ở đây ). Có một vài cách khác nhau để giải quyết nhưng tôi khuyên bạn chỉ nên thêm /usr/pgsql-x.x/binvào đường dẫn của người dùng postgres. Chỉ cần thêm PATH=$PATH:/usr/pgsql-x.x/bin vào người dùng postgres .bash_profilevà bạn sẽ tốt để đi.


0

Bạn cũng có thể sử dụng (PostgresSQL 11 chạy trên MX Linux (Debian 9, Stretch)) -

/etc/init.d/postgresql status

/etc/init.d/postgresql stop

/etc/init.d/postgresql restart

0

Hãy chắc chắn /sbinlà một phần của đường dẫn của bạn nếu chạy các lệnh servicesystemctl.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.