Computer >> Hướng Dẫn Máy Tính >  >> Xử Lý Sự Cố >> Linux

Khắc Phục Lỗi Kết Nối psql: 'Could Not Connect to Server – No Such File or Directory'

PostgreSQL tự quảng bá là nền tảng ứng dụng database mã nguồn mở tiên tiến nhất, và Debian Linux chắc chắn có nhiều gói khiến nó phức tạp hơn. Bạn cũng tìm thấy đống gói PostgreSQL nếu làm việc với Ubuntu Server hoặc các spin Ubuntu, vì chúng dựa trên lõi Debian. Mức độ phức tạp và phát triển này làm cho cảnh báo "could not connect to server" và "no such file or directory" phiền toái hơn.

May mắn thay, đây thường chỉ là trường hợp đơn giản của vấn đề quyền do PostgreSQL muốn user tên postgres nắm giữ các thư mục này. Bằng một thủ thuật dòng lệnh đơn giản, bạn có thể khắc phục gần như ngay lập tức. Bạn sẽ muốn qua vài kiểm tra chẩn đoán cơ bản trước, để chắc chắn đây thực sự là vấn đề bạn đối mặt.

Khắc Phục Lỗi PostgreSQL Could Not Connect to Server

Trước hết, thử khởi động lại hệ thống PostgreSQL thủ công. Đôi khi điều này đủ khắc phục, và nếu không thì bạn ít nhất có thông báo lỗi để làm việc. Nhiều khả năng bạn chỉ khởi động lại hệ thống bằng cách chạy lệnh psql như user postgres.

Bạn có thể thấy điều này khắc phục mọi thứ. Ngược lại, bạn có thể nhận dòng "psql: could not connect to server: No such file or directory," nghĩa là bạn gặp vấn đề quyền. Nếu nhận thông báo lỗi này, bạn sẽ nhận thêm text khác.

Kiểm tra trạng thái dịch vụ nếu nhận thông báo này để chắc chắn module được load. Chúng nên load, nhưng nếu không thì bạn có thể muốn restart. Nếu nhận "Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)", chúng đang chạy. Thử sudo service postgresql restart để restart nhanh xem có khắc phục không. Thường không, nhưng có thể đáng thử.


Giả sử không giúp ích, hãy xem bên trong log PostgreSQL tìm lỗi. Trong trường hợp khó gặp bạn thấy gì về lỗi gói, bạn có thể thiếu một module SQL. Đây không phải nguyên nhân thường gặp, nhưng chắc chắn không hại khi xem. Nhiều khả năng bạn sẽ thực sự gặp cảnh báo "Permissions should be u=rwx (0700)" và

"data directory "/var/lib/postgresql/9.6/main" has group or world access", dù bạn có thể thấy số phiên bản khác tùy SQL server bạn chạy.

Điều này vì Debian và distro tương tự mong đợi user và group postgres kiểm soát các thư mục này với quyền 0700 và tất cả file qua quyền 0600 vì an ninh. Tất cả bạn phải làm là chạy lệnh sau tại terminal để khắc phục quyền:

sudo chown -R postgres:postgres /var/lib/postgresql/9.6/ && sudo chmod -R u=rwX,go= /var/lib/postgresql/9.6/

Lưu ý phải là X in hoa không phải x thường bạn quen do cách cụ thể bạn muốn thiết lập tùy chọn quyền file. Mặc dù bạn cần quyền root, hai dấu sudo nên đủ cho phép đúng khi chạy như user thường. Điều này quan trọng vì Ubuntu và các implement Linux spin-off từ Ubuntu hash out tài khoản root chính nên bạn phải làm cách này.

Khi lệnh xong, khởi động lại dịch vụ bằng sudo service postgresql restart từ terminal và bạn không nên có lỗi lần này. Nếu xem log, cảnh báo về vấn đề quyền không nên còn nữa.

Đây là lỗi xảy ra do điều kiện khá cụ thể, nên bạn không nên gặp lại sau khi khắc phục lần đầu, miễn là bạn không cố thao tác thủ công quyền thư mục PostgreSQL. Không có tình huống nào việc đó thực sự cần thiết, ngoài việc khắc phục vấn đề lần đầu.

VỀ TÁC GIẢ

Khắc Phục Lỗi Kết Nối psql:  Could Not Connect to Server – No Such File or Directory

Kevin Arrows

Kevin Arrows là chuyên gia công nghệ giàu kinh nghiệm và kiến thức với hơn một thập kỷ kinh nghiệm trong ngành. Anh持有 chứng chỉ Microsoft Certified Technology Specialist (MCTS) và có đam mê sâu sắc về việc cập nhật các phát triển công nghệ mới nhất. Kevin đã viết nhiều về nhiều chủ đề liên quan đến công nghệ, thể hiện chuyên môn và kiến thức trong các lĩnh vực như phát triển phần mềm, an ninh mạng và điện toán đám mây. Đóng góp của anh cho lĩnh vực công nghệ đã được công nhận và tôn trọng rộng rãi bởi đồng nghiệp, và anh được đánh giá cao về khả năng giải thích các khái niệm kỹ thuật phức tạp một cách rõ ràng và súc tích.