Cài đặt PostgreSQL qua Homebrew
Có vẻ như hầu hết người dùng OS X đều biết về Homebrew
, nhưng Homebrew là trình quản lý gói cho OS X cho phép bạn dễ dàng cài đặt và chạy một thư viện ứng dụng và tiện ích khổng lồ một cách dễ dàng.
Chúng tôi sẽ không xem qua toàn bộ quy trình cài đặt (mặc dù ngắn) của Homebrew, nhưng nếu bạn muốn cài đặt Homebrew và sử dụng nó để quản lý PostgreSQL, hãy xem lệnh cài đặt trên tài liệu chính thức. Nếu bạn không chắc liệu Homebrew đã được cài đặt hay chưa, hãy thử which brew
lệnh từ thiết bị đầu cuối để xác minh.
Sau khi cài đặt xong Homebrew, bạn có thể cài đặt PostgreSQL bằng cách đưa ra các lệnh sau trong thiết bị đầu cuối của mình:
$ brew update
$ brew doctor
$ brew install postgres
Hai lệnh đầu tiên được sử dụng để cập nhật Homebrew và báo cáo bất kỳ sự cố tiềm ẩn nào (nếu cần). Sau đó, tất nhiên, brew install postgres
là lệnh một dòng để cài đặt PostgreSQL.
Bạn sẽ thấy rất nhiều thông tin hữu ích trong đầu ra trong quá trình cài đặt, phần lớn trong số đó sẽ được sao chép lại để sử dụng trong các phần tiếp theo.
Sử dụng LaunchAgent và plist để khởi chạy PostgreSQL khi khởi động
Trong hầu hết các trường hợp, bạn có thể sẽ muốn khởi chạy PostgreSQL khi khởi động hệ thống của mình, vì vậy bạn cần cho máy tính biết đây là mong muốn của bạn.
Trước tiên, bạn cần tạo một thư mục cho LaunchAgents
của mình cư trú (nếu thư mục chưa tồn tại). LaunchAgents
trong OS X là các tập lệnh đơn giản được launchd
sử dụng khiến hệ thống chạy các chương trình hoặc mã trong khi khởi động.
Tạo user
của bạn -specific LaunchAgents
thư mục bằng lệnh này, nếu cần:
$ mkdir -p ~/Library/LaunchAgents
Bây giờ, bạn sẽ cần tạo một liên kết tượng trưng từ tập lệnh thực sự cho phép Postgres chạy đến LaunchAgents
danh mục. Một liên kết tượng trưng tương tự như việc tạo một bản sao mới của tệp để sử dụng trong một thư mục khác, nhưng vì liên kết là 'tượng trưng', liên kết chỉ là một địa chỉ chuyển tiếp:bất kỳ yêu cầu nào được thực hiện đến vị trí liên kết tượng trưng đó thực sự được "chuyển tiếp" hoặc được chuyển hướng đến nơi thực tệp thực sự cư trú.
Liên kết đến plist
(danh sách thuộc tính) tệp được tạo bởi Homebrew và đặt liên kết tượng trưng mới đó trong LaunchAgents
với lệnh này:
$ ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
Lưu ý:Kiểm tra kỹ xem lệnh có đúng không:Nó phải là một phần của đầu ra cài đặt được đề cập ở trên khi Homebrew cài đặt Postgres ban đầu.
Cuối cùng, chúng tôi tải liên kết tượng trưng mới LaunchAgent
sử dụng launchctl load
, đó là lệnh cụ thể thông báo cho máy tính chạy tập lệnh này và khởi động Postgres khi máy tính khởi chạy. Một lần nữa, lệnh chính xác cần nhập để cài đặt của riêng bạn sẽ là một đầu ra trong quá trình cài đặt Homebrew’s Postgres, nhưng nó sẽ giống như sau:
$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Khởi động PostgreSQL theo cách thủ công
Để khởi động Postgres theo cách thủ công mà không cần khởi động lại, bạn sẽ có thể sử dụng lệnh được xuất ra trong quá trình cài đặt, như sau:
$ postgres -D /usr/local/var/postgres
Điều này sẽ cố gắng khởi chạy Postgres trong daemon
, có nghĩa là nó sẽ chạy như một quy trình nền mà không tiếp quản thiết bị đầu cuối của bạn.
Bắt đầu / Dừng PostgreSQL mà không cần Homebrew
Trong trường hợp bạn không có (hoặc không muốn sử dụng) Homebrew cho Postgres, nhưng bạn đã cài đặt Postgres, bạn cũng có thể khởi động nó theo cách thủ công với pg_ctl
, là tiện ích khởi chạy do chính Postgres cung cấp.
Điều này sẽ khởi động Postgres (giả sử là thư mục mặc định):
$ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Và điều này sẽ dừng Postgres:
pg_ctl -D /usr/local/var/postgres stop -s -m fast
Khắc phục sự cố Khởi động:Bạn đã Chạy initdb
?
Trong một số trường hợp, nếu bạn gặp sự cố khi chạy Postgres, hãy đảm bảo rằng bạn đã thực thi initdb
lệnh một lần, khiến Postgres khởi tạo cụm cơ sở dữ liệu để cài đặt mới và cho phép bạn kết nối với postgres
mặc định người dùng.