Khắc phục: psql: không thể kết nối với máy chủ: Không có tệp hoặc thư mục nào như vậy
PostgreSQL quảng bá chính nó như là nền tảng ứng dụng cơ sở dữ liệu mã nguồn mở tiên tiến nhất, và Debian Linux chắc chắn có nhiều gói làm cho nó trở nên phức tạp hơn. Bạn cũng có thể tìm thấy các gói tải trọng cho PostgreSQL nếu bạn đang làm việc với Ubuntu Server hoặc bất kỳ một trong số các spin Ubuntu khác nhau, vì chúng dựa trên lõi của Debian. Mức độ phức tạp và phát triển này không thể kết nối với máy chủ và không có cảnh báo thư mục hoặc tập tin như vậy gây phiền nhiễu nhiều hơn.
May mắn thay, đây thường là những trường hợp đơn giản về các vấn đề cho phép gây ra bởi thực tế là PostgreSQL muốn một người dùng có tên là postgres để giữ các thư mục này. Bằng cách sử dụng một thủ thuật dòng lệnh đơn giản, bạn có thể sửa lỗi này gần như ngay lập tức. Tuy nhiên, bạn sẽ muốn trải qua một vài kiểm tra chẩn đoán cơ bản trước đây, để đảm bảo rằng đây thực sự là vấn đề mà bạn đang gặp phải.
Sửa PostgreSQL không thể kết nối với lỗi máy chủ
Trước tiên, hãy thử khởi động lại hệ thống PostgreSQL theo cách thủ công. Đôi khi điều này là đủ để sửa chữa mọi thứ, và nếu không thì ít nhất bạn sẽ nhận được một thông báo lỗi để làm việc. Nhiều khả năng, bạn chỉ cần khởi động lại hệ thống bằng cách phát hành lệnh psql làm người dùng postgres.
Bạn có thể thấy rằng điều này xóa tất cả mọi thứ lên. Nếu không, bạn có thể nhận được một dòng đọc psql: không thể kết nối với máy chủ: Không có tệp hoặc thư mục như vậy, có nghĩa là bạn đang gặp sự cố về quyền. Nếu bạn nhận được thông báo lỗi này, bạn sẽ nhận được một số văn bản khác nhổ ra.
Kiểm tra trạng thái dịch vụ nếu bạn nhận được thông báo này để đảm bảo rằng các mô-đun được tải. Họ nên, nhưng nếu họ không bạn có thể muốn khởi động lại. Nếu bạn nhận được một thông báo đọc Loaded: loaded (/lib/systemd/system/postgresql.service; enabled), thì chúng đang chạy. Hãy thử sudo service postgresql khởi động lại chỉ để làm một khởi động lại ngắn gọn và xem nếu điều đó sửa chữa bất cứ điều gì. Nó thường không, nhưng nó có thể là một giá trị thử tùy thuộc.
Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây
Giả sử rằng nó đã không giúp đỡ, hãy xem bên trong nhật ký PostgreSQL thứ để tìm lỗi. Trong trường hợp không chắc bạn tìm thấy một cái gì đó về lỗi gói, sau đó bạn có thể thiếu một trong các mô-đun SQL. Đây không phải là nguyên nhân của những vấn đề này, nhưng nó chắc chắn không thể làm hại ít nhất là có một cái nhìn. Nhiều hơn khả năng, bạn sẽ thực sự đi qua một cái gì đó cảnh báo bạn rằng Quyền nên u = rwx (0700) và
rằng thư mục dữ liệu /var/lib/postgresql/9.6/main có quyền truy cập nhóm hoặc thế giới, mặc dù bạn có thể thấy một số phiên bản khác nhau tùy thuộc vào máy chủ SQL bạn đang chạy.
Điều này là do Debian và các bản phân phối tương tự mong đợi rằng người dùng postgres và nhóm kiểm soát các thư mục này với quyền hạn 0700 và tất cả các tệp thông qua các quyền hạn cho phép của bảo mật là 0600. Tất cả những gì bạn phải làm là chạy lệnh sau tại terminal để sửa các quyền:
sudo chown -R postgres: postgres /var/lib/postgresql/9.6/ && sudo chmod -R u = rwX, go = /var/lib/postgresql/9.6/
Xin lưu ý rằng phải là chữ X chữ hoa và không phải là chữ thường thấp hơn x có lẽ bạn quen thuộc hơn với cách cụ thể mà bạn sẽ muốn đặt các tùy chọn cấp phép tệp này. Mặc dù bạn cần quyền truy cập root để thực hiện việc này, việc bao gồm hai dấu sudo đó là quá đủ để cung cấp cho bạn quyền thích hợp khi chạy với tư cách người dùng thông thường. Điều này rất quan trọng vì Ubuntu và các triển khai Linux khác nhau tách khỏi Ubuntu băm ra khỏi tài khoản gốc chính, do đó bạn cần phải làm mọi thứ theo cách này.
Khi lệnh này kết thúc, bạn có thể khởi động lại dịch vụ bằng cách khởi động lại dịch vụ sudo postgresql từ terminal và bạn không nên có bất kỳ lỗi nào trong lần này. Nếu bạn nhìn vào nhật ký, thì những cảnh báo liên quan đến các vấn đề về quyền sẽ không còn ở đó nữa.
Đây là lỗi xảy ra do kết quả của các điều kiện khá cụ thể, vì vậy bạn không nên trải nghiệm lại lần nữa sau khi đã sửa nó lần đầu tiên với điều kiện bạn không cố gắng thực hiện bất cứ điều gì liên quan đến thao tác quyền của các thư mục PostgreSQL. Không có tình huống mà điều này thực sự cần thiết dù sao, ngoài việc sửa chữa vấn đề này ngay từ đầu.
Mẹo CHUYÊN NGHIỆP: Nếu vấn đề xảy ra với máy tính của bạn hoặc máy tính xách tay / máy tính xách tay, bạn nên thử sử dụng phần mềm Reimage Plus có thể quét các kho lưu trữ và thay thế các tệp bị hỏng và bị thiếu. Điều này làm việc trong hầu hết các trường hợp, nơi vấn đề được bắt nguồn do một tham nhũng hệ thống. Bạn có thể tải xuống Reimage Plus bằng cách nhấp vào đây