Trong Tiêu chuẩn phân cấp hệ thống tập tin, `/ var / lib / được nêu là (in nghiêng phần quan trọng nhất):
5.8.1 Mục đích
Hệ thống phân cấp này chứa thông tin trạng thái liên quan đến một ứng dụng hoặc hệ thống. Thông tin trạng thái là dữ liệu mà các chương trình sửa đổi trong khi chúng chạy và liên quan đến một máy chủ cụ thể. Người dùng không bao giờ cần phải sửa đổi các tệp trong / var / lib để định cấu hình hoạt động của gói.
Thông tin trạng thái thường được sử dụng để bảo vệ tình trạng của một ứng dụng (hoặc một nhóm các ứng dụng liên quan đến nhau) giữa các yêu cầu và giữa các phiên bản khác nhau của cùng một ứng dụng. Thông tin trạng thái nói chung sẽ vẫn còn hiệu lực sau khi khởi động lại, không nên ghi nhật ký đầu ra và không nên lưu dữ liệu.
Một ứng dụng (hoặc một nhóm các ứng dụng liên quan đến nhau) phải sử dụng thư mục con / var / lib cho dữ liệu của nó. Có một thư mục con bắt buộc, / var / lib / misc, dành cho các tệp trạng thái không cần thư mục con; các thư mục con khác chỉ nên có mặt nếu ứng dụng đang được đề cập được đưa vào bản phân phối.
/ var / lib / là vị trí phải được sử dụng cho tất cả các hỗ trợ đóng gói phân phối. Các bản phân phối khác nhau có thể sử dụng tên khác nhau, tất nhiên.
Tóm lại: / var / lib / dành cho dữ liệu được sử dụng cục bộ.
Vì vậy, sẽ rất hợp lý khi đưa dữ liệu của cơ sở dữ liệu vào thư mục / var / lib / {mysql | postTHER} / nhưng ... FHS là một tiêu chuẩn được tạo ra chủ yếu để sử dụng cho các bản phân phối . Là người dùng, bạn có thể tự do đặt dữ liệu của mình bất cứ nơi nào bạn muốn và chủ yếu là vấn đề quan điểm.
Bạn đang hiểu nhầm từ "địa phương". / usr / local / bin / không dành cho phần mềm hệ thống mà dành cho phần mềm của riêng bạn (về cơ bản mọi thứ có "cục bộ" không bao giờ được hệ thống chạm vào. Như FHS giải thích:
/ usr / địa phương /
4.9.1 Mục đích
Hệ thống phân cấp / usr / cục bộ được quản trị viên hệ thống sử dụng khi cài đặt phần mềm cục bộ. Nó cần được an toàn để không bị ghi đè khi phần mềm hệ thống được cập nhật. Nó có thể được sử dụng cho các chương trình và dữ liệu có thể chia sẻ giữa một nhóm các máy chủ, nhưng không được tìm thấy trong / usr. Phần mềm được cài đặt cục bộ phải được đặt trong / usr / local chứ không phải / usr trừ khi nó được cài đặt để thay thế hoặc nâng cấp phần mềm trong / usr.
Một tập tin thực thi được cài đặt từ phần mềm hệ thống sẽ không bao giờ đi đến bất cứ thứ gì cục bộ.
Bây giờ cho / usr / lib / .
4.7.1 Mục đích
/ usr / lib bao gồm các tệp đối tượng, thư viện và các tệp nhị phân nội bộ không được thực hiện trực tiếp bởi người dùng hoặc tập lệnh shell. Các ứng dụng có thể sử dụng một thư mục con dưới / usr / lib. Nếu một ứng dụng sử dụng thư mục con, tất cả dữ liệu phụ thuộc vào kiến trúc được sử dụng riêng cho ứng dụng phải được đặt trong thư mục con đó.
postTHERql có lẽ là một daemon bắt đầu lúc khởi động? Nếu vậy nó có ý nghĩa để đặt nó ở đây. Bạn không nên tự mình sử dụng lệnh mà bắt đầu một dịch vụ. Các tệp trong / usr / lib / có xu hướng có người dùng và nhóm riêng của họ và / hoặc một trình nền hạn chế quyền truy cập vào / var / lib (ví dụ, chỉ mysqld có thể truy cập / var / lib / mysql /; bưu điện