เพจทางการไม่ได้กล่าวถึงกรณีดังกล่าว แต่ผู้ใช้จำนวนมากต้องการเพียงแค่psql
ไม่มีฐานข้อมูลในเครื่อง (ฉันมีบน AWS) psql
เบียร์ไม่ได้
เพจทางการไม่ได้กล่าวถึงกรณีดังกล่าว แต่ผู้ใช้จำนวนมากต้องการเพียงแค่psql
ไม่มีฐานข้อมูลในเครื่อง (ฉันมีบน AWS) psql
เบียร์ไม่ได้
คำตอบ:
คุณยังสามารถใช้ homebrew เพื่อติดตั้ง libpq
brew install libpq
สิ่งนี้จะให้ psql, pg_dump และยูทิลิตี้ไคลเอนต์อื่น ๆ โดยไม่ต้องติดตั้ง Postgres
จากนั้นคุณเพิ่มไดเร็กทอรีการติดตั้งลงในพา ธ ของคุณ ในกรณีของฉันตำแหน่งไดเร็กทอรีคือ:
/usr/local/Cellar/libpq/10.3/bin
brew link --force libpq
แต่จะสร้างลิงก์สัญลักษณ์อื่น ๆ ที่คุณอาจไม่ต้องการ / ต้องการ
ln -s /usr/local/Cellar/libpq/11.3/bin/psql /usr/local/bin/psql
/ ln -s /usr/local/Cellar/libpq/11.3/bin/pg_dump /usr/local/bin/pg_dump
/ln -s /usr/local/Cellar/libpq/11.3/bin/pg_restore /usr/local/bin/pg_restore
for cmd in psql pg_dump pg_restore; do ln -s ../opt/libpq/bin/$cmd /usr/local/bin/$cmd; done
PATH=/usr/local/opt/libpq/bin:$PATH
เพื่อเพิ่มคำสั่งทั้งหมดในพา ธ ของคุณในครั้งเดียวโดยใช้ชื่อไดเร็กทอรีที่ไม่เปลี่ยนแปลงตามเวอร์ชันlibpq
ที่คุณติดตั้ง
Homebrew มีเฉพาะสูตรpostgresเท่านั้นและไม่มีสูตรเฉพาะใด ๆ ที่ติดตั้งpsql
เครื่องมือเท่านั้น
ดังนั้น "วิธีที่ถูกต้อง" ในการรับpsql
แอปพลิเคชันคือการติดตั้งสูตรpostgresและคุณจะเห็นที่ด้านล่างของส่วน "คำเตือน" ว่ามันไม่ได้เรียกใช้ฐานข้อมูลจริงๆมันแค่วางไฟล์ไว้ในระบบของคุณ :
$ brew install postgres
==> Downloading https://homebrew.bintray.com/bottles/postgresql-9.6.5.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring postgresql-9.6.5.sierra.bottle.tar.gz
==> /usr/local/Cellar/postgresql/9.6.5/bin/initdb /usr/local/var/postgres
==> Caveats
<snip>
To have launchd start postgresql now and restart at login:
brew services start postgresql
Or, if you don't want/need a background service you can just run:
pg_ctl -D /usr/local/var/postgres start
==> Summary
🍺 /usr/local/Cellar/postgresql/9.6.5: 3,269 files, 36.7MB
ตอนนี้คุณสามารถใช้psql
เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ Postgres ระยะไกลและจะไม่เรียกใช้เซิร์ฟเวอร์ท้องถิ่นแม้ว่าคุณจะทำได้ถ้าคุณต้องการจริงๆ
ในการตรวจสอบว่า Local postgres
daemon ไม่ทำงานให้ตรวจสอบบริการ homebrew ที่ติดตั้งไว้:
$ brew services list
Name Status User Plist
mysql stopped
postgresql stopped
หากคุณไม่ได้ติดตั้งHomebrew Servicesเพียงแค่
$ brew tap homebrew/services
... และคุณจะได้รับฟังก์ชันนี้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบริการ Homebrewอ่านบล็อกโพสต์ที่ยอดเยี่ยมที่จะอธิบายวิธีการทำงาน
brew link
ขั้นตอน การบังคับให้ลิงก์กับ libpq จำเป็นเนื่องจากการประกาศ keg_onlyในสูตร จากภาวะแทรกซ้อนที่เฉพาะเจาะจงนี้ฉันยืนตามคำตอบนี้ว่าเป็นวิธีที่ "ถูกต้อง" ในการทำสิ่งที่คำถามถาม ฉันตระหนักดีว่าผู้ใช้หลายคนยังคงชอบlibpq
แนวทางนี้
libpq 11.2
MacOS & zsh หรือ bash
ด้านล่างทำงาน
libpq
brew install libpq
อัปเดตเส้นทาง
ถ้าใช้ zsh:
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
ถ้าใช้ bash:
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
echo 'export PATH="/usr/local/opt/libpq/bin:$PATH"' >> ~/.bash_profile
หากคุณใช้ทุบตี
ติดตั้ง libpq:
brew install libpq
จากนั้นสร้างลิงก์สัญลักษณ์:
ln -s /usr/local/opt/libpq/bin/psql /usr/local/bin/psql
หวังว่าจะช่วยได้
ถ้าคุณอย่างแท้จริงไม่จำเป็นต้อง PostgreSQL แล้วคุณไม่ได้มีการปรับเปลี่ยนเส้นทางของคุณไปใช้ libra libpq
เพียงการเชื่อมโยง เอกสารกล่าวว่าเหตุผลเดียวที่ไม่ใช่เพื่อหลีกเลี่ยงความขัดแย้งกับแพ็คเกจ PostgreSQL
brew uninstall postgresql
brew install libpq
brew link --force libpq
ฉันพบว่าสิ่งเหล่านี้ไม่น่าพอใจจริงๆโดยเฉพาะอย่างยิ่งหากคุณต้องรองรับ postgres หลายเวอร์ชัน ทางออกที่ง่ายกว่ามากคือดาวน์โหลดไบนารีที่นี่:
https://www.enterprisedb.com/download-postgresql-binaries
และเพียงแค่เรียกใช้เวอร์ชันปฏิบัติการpsql
ที่ตรงกับฐานข้อมูลที่คุณกำลังดำเนินการโดยไม่มีขั้นตอนเพิ่มเติม
ตัวอย่าง:
./path/to/specific/version/bin/psql -c '\x' -c 'SELECT * FROM foo;'
คุณสามารถลอง brew install postgresql
แต่นี่เป็น GUI ที่ดีในการจัดการฐานข้อมูลของคุณhttps://postgresapp.com
brew install postgresql
ติดตั้ง psql ด้วยฐานข้อมูลเอง :(