2012-03-14 37 views
5

Tôi muốn thay đổi tham số "shared_buffers" trong tệp postgresql.conf của mình.Khởi động máy chủ PostgreSQL không thành công sau khi sửa đổi postgresql.conf bằng lệnh sudo

Vấn đề là tôi đã sử dụng lệnh sudo và nó đã cấp quyền sở hữu cho thư mục gốc.

-rw-rw-rw- 1 root root 13661 Mar 14 15:36 postgresql.conf 

Sau đó, tôi sử dụng lệnh sau để lấy lại quyền sở hữu cho bưu điện:

sudo chown postgres:postgres /var/lib/pgsql/data/postgresql.conf 

Vì vậy, tôi đã thử các lệnh:

postgres -D /var/lib/pgsql/data 

tôi đã nặng ngạc nhiên khi vẫn nhận được như sau thông báo lỗi

postgres cannot access the server configuration file "/var/lib/pgsql/data/postgresql.conf": Permission denied 

dưới id kết quả của "ls" lệnh trong thư mục realted đến PostgreSQL:

sudo ls -l /var/lib/pgsql/data/ 
total 208 
drwx------ 19 postgres postgres 4096 Mar 13 17:23 base 
drwx------ 2 postgres postgres 4096 Mar 14 14:30 global 
drwx------ 2 postgres postgres 4096 Mar 5 14:26 pg_clog 
-rw------- 1 postgres postgres 3365 Mar 1 2006 pg_hba.conf 
-rw------- 1 postgres postgres 3182 Mar 1 2006 pg_hba.conf.old 
-rw------- 1 postgres postgres 1460 Feb 24 2006 pg_ident.conf 
drwx------ 2 postgres postgres 139264 Mar 14 00:00 pg_log 
drwx------ 4 postgres postgres 4096 Feb 24 2006 pg_multixact 
drwx------ 2 postgres postgres 4096 Mar 14 10:42 pg_subtrans 
drwx------ 2 postgres postgres 4096 Feb 24 2006 pg_tblspc 
drwx------ 2 postgres postgres 4096 Feb 24 2006 pg_twophase 
-rw------- 1 postgres postgres  4 Feb 24 2006 PG_VERSION 
drwx------ 3 postgres postgres 4096 Mar 14 14:30 pg_xlog 
-rw-rw-rw- 1 postgres postgres 13661 Mar 14 15:36 postgresql.conf 
-rw------- 1 postgres postgres  49 Jan 2 17:15 postmaster.opts 

Nếu ai đó có một ý tưởng về có thể là cách để khắc phục vấn đề này.

Xin cảm ơn trước.

Fred

Trả lời

7

Kiểm tra như thế nào là SELinux chạy:

# sestatus 

Nếu đó là trong việc thực thi chế độ kiểm tra nhật ký:

# less /var/log/audit/audit.log 

Nếu bạn tìm thấy SELinux chặn sau đó tạm thời vô hiệu hóa SELinux chỉ để xác nhận đó là thủ phạm:

# setenforce 0 

Bây giờ hãy thử khởi động máy chủ. Nếu nó hoạt động sau đó reenable SELinux:

# setenforce 1 

Tìm cách khôi phục cài đặt SELinux cho tệp đó.

+0

Cảm ơn bạn rất nhiều vì đã dành thời gian. Tôi nhận được "bash: sestatus: lệnh không tìm thấy". Bạn có gợi ý nào khác không? Vì tôi bắt đầu phát điên sau một buổi chiều duyệt web mà không có đầu mối. –

+0

@Fred Cho đường dẫn tập tin tôi nghĩ bạn đang sử dụng một hệ điều hành có nguồn gốc RedHat. Hệ điều hành là gì? –

+0

FYI: Tôi thuộc RedHat Enterprise Linux WS Bản phát hành 4 –

1

Tôi gặp lỗi tương tự ngay sau khi cài đặt mới.
Đầu tiên, các bit chế độ tệp mặc định của tất cả các tệp trong /var/lib/pgsql/data/ được đặt thành 600 và của bạn postgresql.conf666. Đây không phải là vấn đề trong trường hợp này, nhưng nó là tốt để giữ những thứ như họ đang có.
Tôi không quen với RedHat distro nhưng từ các ý kiến ​​có vẻ như đây không phải là vấn đề với SELinux.
On Fedora 20 chạy của tôi:

$ systemctl start postgresql.service 

dường như để chạy các máy chủ.

Và nếu bạn muốn thực hiện một số lệnh trong PosgtreSQL lần đầu tiên - như tạo người dùng của riêng bạn cho cũ. bạn có thể tìm thấy câu hỏi này hữu ích: https://serverfault.com/questions/110154/whats-the-default-superuser-username-password-for-postgres-after-a-new-install

Các vấn đề liên quan