ตั้งค่าฐานข้อมูล PostGIS และเปิดใน QGIS บน Windows?


15

ฉันได้ลองทำตามคู่มือการตั้งค่าฐานข้อมูล PostGIS เพื่อให้ผู้ใช้ที่มี QGIS สามารถเข้าถึงได้ แต่ในขณะนี้ฉันไม่เข้าใจความคืบหน้าเพียงพอหรือไม่

สถานการณ์ของฉัน; ฉันเป็นผู้ฝึกอบรมที่รับผิดชอบในการสร้างฐานข้อมูล PostGIS สำหรับการแปลงวัตถุสีเขียว (เช่นต้นไม้) และการสืบค้นที่เรียกใช้ - เช่นการเชื่อมโยงรายการถนนกับไฟล์รูปภาพไปยังตารางคุณลักษณะ

ฉันมี "shapefile skeletons" (ปัจจุบันว่างเปล่าโดยไม่มีวัตถุเพียงแค่กรอบคุณสมบัติ "ซึ่งวัตถุทางภูมิศาสตร์ที่มีอยู่ในปัจจุบันและในอนาคต (รูปร่างที่แตกต่างกันสำหรับแต่ละประเภท) จะถูกวาง / สร้าง) ฉันเชื่อว่าฉันสามารถนำเข้ารูปร่างของพวกเขา ฐานข้อมูลหรือไม่

สถานการณ์;

เราทำงานในอาคารที่แยกต่างหากพร้อม LAN และการเชื่อมต่ออินเทอร์เน็ตกับเซิร์ฟเวอร์สำรองสำหรับทุกไฟล์ ดังนั้นเราจึงมีการเข้าถึงไฟล์ในเครื่องและไฟล์ที่เราแบ่งปันผ่านการเชื่อมต่ออินเทอร์เน็ต

การตั้งค่าฐานข้อมูลดำเนินการโดยผู้ดูแลระบบผ่านการเข้าถึงระยะไกลโดยใช้ไฟล์ปฏิบัติการ. exe ล่าสุดของ PostGIS และ PostgreSQL (postgresql-9.6.2-3-windows-x64 & postgis-bundle-pg96x64-setup-2.3.2 -1) สำหรับเครื่อง 64 บิตของฉัน ผู้ดูแลระบบให้แฟ้มข้อความพร้อมข้อมูลเข้าสู่ระบบแก่ฉัน คู่มือการฝึกอบรมที่นี่ค่อนข้างสับสนตั้งแต่จัดการกับ Ubuntu

ฉันติดขัดเนื่องจากไม่รู้ว่าจะใช้ข้อมูลการเข้าสู่ระบบที่ฉันจดไว้ที่ไหน? ฉันคิดว่าฉันต้องใช้ pgAdmin?


นี่คือวิธีที่ฉันติดตั้ง PostGIS บน Windows - ในการติดตั้งแบบง่ายget.enterprisedb.com/docs/…จากนั้น QGIS จะเชื่อมต่อได้อย่างง่ายดายด้วยชื่อผู้ใช้และรหัสผ่านที่คุณตั้งไว้
Mapperz

1
ฉันแนะนำให้ติดตั้ง pgAdmin 3 เพื่อทำงานกับฐานข้อมูลของคุณ มี pgAdmin4 อยู่ในขณะนี้คุณยังสามารถติดตั้งในเวลาเดียวกันดูว่าคุณชอบอะไร
Martin Hügi

รอดังนั้นจะไปที่ไหนใน QGIS แล้วและไฟล์ใดที่ฉันควรติดตั้งใน stackbuilder? แก้ไข nvm: พบแล้วตอนนี้ฉันต้องค้นหารายการโฮสต์และบริการในพื้นที่ที่ฉันต้องทำ
ThunderSpark

Postgis จะติดตั้ง 'เซิร์ฟเวอร์' ที่ต้องการภายในเครื่องนี่เป็นวิธีการทำงานของฐานข้อมูล - จากนั้นคุณใช้ QGIS เพื่อเชื่อมต่อ 'live' ผ่านเซิร์ฟเวอร์ (localhost)
Mapperz

คำตอบ:


24

ดูเหมือนว่าผู้ดูแลระบบของคุณติดตั้งฐานข้อมูลเรียบร้อยแล้วและให้รายละเอียดที่คุณต้องการ อาจมีการกำหนดค่า PostGIS ในระหว่างการติดตั้งด้วยเช่นกัน แต่ถ้าไม่คุณสามารถตรวจสอบว่าคุณทำตามขั้นตอนเหล่านี้ได้หรือไม่

ก่อนอื่นขอให้ผู้ดูแลระบบของคุณติดตั้ง pgAdmin สิ่งนี้จะช่วยให้คุณเข้าถึงฐานข้อมูล PostgreSQL ของคุณด้วยส่วนต่อประสานกราฟิก

https://www.pgadmin.org/download/windows.php

เปิด pgAdmin

หาก PostgreSQL ของคุณได้รับการติดตั้งแล้ว

  • ในคอมพิวเตอร์ของคุณจะปรากฏเป็น localhost คุณควรดับเบิลคลิกที่ 'PostgreSQL (หมายเลขรุ่น) (localhost: 5432)' เพื่อเชื่อมต่อ

ป้อนคำอธิบายรูปภาพที่นี่

  • หากมีการติดตั้งบนเครือข่ายคุณจะต้องมีผู้ดูแลระบบของคุณเพื่อแจ้งให้คุณทราบที่อยู่โฮสต์ (ถ้าคุณยังไม่มี) จากนั้นคุณจะต้องไปที่ไฟล์> เพิ่มเซิร์ฟเวอร์และกรอกข้อมูลลงในฟิลด์

ป้อนคำอธิบายรูปภาพที่นี่

เมื่อเชื่อมต่อไปที่ Edit > New Object > New Database

ตั้งชื่อ มันจะปรากฏในรายการเซิร์ฟเวอร์ของคุณ

ดับเบิลคลิกเพื่อเชื่อมต่อ ตรวจสอบเพื่อดูว่ารายการExtensionspostgis

ถ้าไม่;

เปิดหน้าต่าง SQL โดยคลิกที่ไอคอน SQL

ป้อนคำอธิบายรูปภาพที่นี่

และพิมพ์

CREATE EXTENSION PostGIS

กด 'Execute Query' - ไอคอนนี้ ป้อนคำอธิบายรูปภาพที่นี่

คลิกขวาที่ฐานข้อมูลในรายการและยกเลิกการเชื่อมต่อจากนั้นเชื่อมต่อใหม่ ส่วนขยายควรจะpostgisอยู่ในรายการ

คุณสามารถตั้งค่าบทบาทกลุ่มใหม่และบทบาทการเข้าสู่ระบบ ณ จุดนี้ดูเหมือนว่าคุณควรได้รับความปลอดภัยและผู้ใช้ของคุณทั่วทั้งเครือข่าย

postgresหรือถ้าคุณเพียงต้องการที่จะทดสอบมันคุณสามารถต่อเมื่อมีบทบาทเริ่มต้น

สามารถตั้งค่ากลุ่มต่าง ๆ ให้มีสิทธิ์ที่แตกต่างกันเช่นผู้ดูแลระบบและผู้ใช้ การเข้าสู่ระบบของผู้ใช้สามารถตั้งค่าและกำหนดให้กับกลุ่มใดก็ได้ที่เหมาะกับระดับสิทธิ์ที่คุณต้องการให้กับผู้ใช้หรือคุณสามารถให้สิทธิ์การเข้าถึงตารางทั้งหมดไปยังผู้ดูแลระบบและเฉพาะผู้ใช้บางกลุ่มเป็นต้น

เปิดหน้าต่าง SQL และเรียกใช้คิวรีเหล่านี้

CREATE ROLE user_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
CREATE ROLE admin_group_name NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

GRANT user_group_name TO admin_group_name

GRANT ALL ON DATABASE database_name TO admin_group_name;

ตั้งค่าการเข้าสู่ระบบของผู้ดูแลระบบ (เข้าสู่ระบบในฐานะ postgres / superuser)

CREATE ROLE admin_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT admin_group_name TO admin_name;

ตั้งค่าการเข้าสู่ระบบของผู้ใช้ (ล็อกอินเป็น postgres / superuser)

CREATE ROLE user_name LOGIN PASSWORD 'their_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;
GRANT users_group_name TO user_name;

เปิด QGIS เริ่มโครงการใหม่

คลิกที่ไอคอน 'เพิ่มเลเยอร์ PostGIS' ในแถบเครื่องมือด้านซ้าย

ป้อนคำอธิบายรูปภาพที่นี่

คลิกการเชื่อมต่อ 'ใหม่' และป้อนรายละเอียดการเชื่อมต่อข้างต้น (ถ้าฐานข้อมูลของคุณเป็นแบบโลคัลโฮสต์จะเป็นเพียงlocalhost)

คุณสามารถทดสอบการเชื่อมต่อ ณ จุดนี้ หากคุณทำเครื่องหมายที่ช่อง 'บันทึก' ด้วยชื่อผู้ใช้และรหัสผ่านช่องดังกล่าวจะจัดเก็บข้อมูลรับรองของคุณไว้ในโปรไฟล์ของคุณดังนั้นคุณไม่จำเป็นต้องป้อนแต่ละครั้ง ขึ้นอยู่กับความต้องการด้านความปลอดภัยของคุณ

กดตกลงและปิดหน้าต่าง 'เพิ่มหน้าต่าง PostGIS'

จากนั้นไปที่Database > DB Manager > DB Manager (รุ่น QGIS ล่าสุดมีตัวจัดการฐานข้อมูลติดตั้งเป็นรุ่นมาตรฐานรุ่นก่อนหน้านี้คุณจะต้องติดตั้งปลั๊กอินตัวจัดการฐานข้อมูล)

เลือก PostGIS สคีมาสาธารณะเริ่มต้นจะปรากฏขึ้น ดูเหมือนว่าคุณควรสร้างคีมาใหม่แทนที่จะใช้แบบสาธารณะ

สคีมา> สร้างสคีมา - ตั้งชื่อ ( no_spaces_or_use_underscores)

เมื่อสร้างแล้วคุณสามารถตรวจสอบได้โดยกลับไปที่ pgAdmin ยกเลิกการเชื่อมต่อและเชื่อมต่อใหม่ สคีมาใหม่ควรจะอยู่ที่นั่นแล้ว

กลับไปที่ QGIS DB Manager เพื่ออัพโหลดรูปร่างไฟล์ลงในตารางในฐานข้อมูล

คลิกลูกศรลง 'เรียกดูเลเยอร์ / ไฟล์' เรียกดูไปยังรูปร่างไฟล์ที่คุณต้องการนำเข้า คลิกไอคอน "... " เพื่อเปิดเบราส์

ตั้งชื่อตาราง ( again_no_spaces_or_use_underscores)

เลือก Primary key

เลือก Geometry Column

เลือกSRIDและป้อนรหัส CRS

OKสำหรับตอนนี้ปล่อยให้ทุกอย่างอื่นและ

หากเป็นชุดข้อมูลขนาดใหญ่อาจต้องใช้เวลาสักครู่โดยเฉพาะระหว่างการเชื่อมต่อเครือข่าย / อินเทอร์เน็ต

อีกครั้งคุณสามารถกลับไป pgAdmin Tablesกดรีเฟรชเวลานี้และตารางใหม่จะปรากฏใน

หากคุณตั้งค่าบทบาทกลุ่มและผู้ใช้คุณจะต้องให้สิทธิ์การเข้าถึงสคีมาตัวอย่างเช่น

GRANT ALL ON SCHEMA schema_name TO admin_group_name;
GRANT USAGE ON SCHEMA schema_name TO user_group_name;

กลับไปที่ QGIS และ 'เพิ่มเลเยอร์ PostGIS' เวลานี้เลือกเชื่อมต่อ เปิดสคีมาและไฮไลต์ตารางและคลิก 'เพิ่ม' และจะเปิดขึ้นในพื้นที่โครงการของคุณ


ดูเหมือนว่าพวกเขาติดตั้ง PQadmin 4 ฉันกำลังให้รหัสผ่านเมื่อโปรแกรมขอ แต่ฉันได้รับ "ไม่สามารถแปลชื่อโฮสต์" postgres // * communityname123 "ไปยังที่อยู่: ข้อผิดพลาดเซิร์ฟเวอร์ที่ไม่รู้จัก" ดังนั้นฉันต้องทำอะไรที่นี่โปรดจำไว้ว่าฉันทำงานกับ PQadmin4 และมีเซิร์ฟเวอร์ PostGre SQL 9.6 เพียงเซิร์ฟเวอร์เดียวเท่านั้น ดังนั้นฉันจะถือว่าที่นี่เป็นเซิร์ฟเวอร์ PostGre QSL ที่ติดตั้ง แต่พวกเขาอาจทำสิ่งผิดปกติกับการกำหนดค่าที่อยู่ ดังนั้นฉันต้องแจ้งพวกเขาที่นี่หรือฉันกำลังทำอะไรผิดหรือเปล่า? * = เซ็นเซอร์
ThunderSpark

1
ลอง 'localhost' เป็นชื่อโฮสต์เพียงเพื่อปกครองในหรือนอก ถ้าไม่เช่นนั้นขอให้ผู้ดูแลระบบของคุณหาเส้นทางไปยังตำแหน่งที่ postgres อยู่ในเครือข่ายพวกเขาควรจะให้สิ่งนี้แก่คุณ มันอาจจะเป็นเพียงแค่ซินแท็กซ์หรือมีบางอย่างในที่อยู่ขาดหายไป
Martin Hügi

ขอบคุณที่ใช้งานได้ผลปรากฎว่าพวกเขาทำผิดโดยเปลี่ยนชื่อผู้ใช้เป็น superuser, Postgres และอื่น ๆ ฉันจะทำตามคำแนะนำที่เหลือและดูว่าใช้ได้หรือไม่ ขอบคุณมาร์ติน
ThunderSpark

Oke ใช้งานได้กับมาร์ตินคุณช่วยเพิ่มส่วนที่เหลือของการสร้างฐานข้อมูลสำหรับกลุ่มที่ทำงานที่นี่ได้อย่างไร
ThunderSpark

เพิ่มสคริปต์อย่างรวดเร็วฉันต้องรอเวลาพักทานอาหารกลางวันฉันจึงรีบหน่อย พวกเขาควรทำงาน
Martin Hügi

2

ดูเหมือนว่าโครงการของคุณจะทำงานได้อย่างเพียงพอในการติดตั้ง postgres / postgis แบบพกพา ฉันทำสิ่งนี้ให้กับนักเรียนของฉันเมื่อไม่นานมานี้เพื่อให้พวกเขาสามารถคัดลอกโฟลเดอร์ postgresl บน usb stick และใช้กับพีซี windows ทุกเครื่อง:

  1. ดาวน์โหลด postgresql เป็นไฟล์ zip
  2. เปิดเครื่องรูดมัน
  3. ดาวน์โหลดpostgis (postgis-bundle-pg96-2.3.1x32.zip หรือ x64) ตามระบบของคุณ
  4. เปิดเครื่องรูดมันและคัดลอกลงในโฟลเดอร์ postgresql
  5. ใช้คำอธิบายนี้เพื่อ "ติดตั้ง" Postgres เป็นเวอร์ชันพกพา: http://www.postgresonline.com/journal/archives/172-Starting-PostgreSQL-in-windows-without-install.html
  6. เลือกที่จะเปลี่ยน pg_hba.conf และเพิ่ม / แทนที่ "โฮสต์ทั้งหมด 127.0.0.1/32 ความน่าเชื่อถือ" - อนุญาตให้เข้าถึงจากพีซีของคุณไปยังฐานข้อมูลโดยไม่ต้องตรวจสอบรหัสผ่านซึ่งก็โอเคในกรณีนี้
  7. เชื่อมต่อกับฐานข้อมูลโดยใช้ pgadmin3
  8. สร้างฐานข้อมูลใหม่และดำเนินการ "CREATE EXTENSION postgis;"

ตอนนี้คุณควรจะสามารถทำงานกับ postgesql / postgis และเข้าถึง db บนพีซีของคุณ โปรดทราบว่านี่เป็นวิธีการแก้ปัญหาที่รวดเร็วและสกปรกซึ่งทำงานเพื่อการศึกษา แต่ไม่ได้อยู่ในสภาพแวดล้อมการผลิต / เครือข่าย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.