Ачааллж байна...
Өмнөх хичээлд бид PostgreSQL-ийг архивын албатай зүйрлэж, түүний SQLite-аас ялгаатай бүтцийг ойлгосон: тусдаа, үргэлж ажилладаг server бөгөөд програмууд түүнтэй сүлжээгээр холбогддог. Энэ хичээлд тэр архивын албыг өөрийн компьютерт байгуулна. Энэ бол Бүлэг 1-ийн DB Browser суулгахаас илүү олон алхамтай тохиргоо, учир нь бид нэг програм биш, байнга ажиллах үйлчилгээ суулгаж байна.
Суулгах явцад гурван шинэ ойлголттой танилцана. Нэгдүгээрт, service — компьютер асаалттай байх бүрт арын хэсэгт өөрөө ажилладаг програм. Хоёрдугаарт, superuser-ийн нууц үг — архивын бүх хаалгыг нээдэг гол түлхүүр, мөн түүнийг сонгох, хадгалах сахилга бат. Гуравдугаарт, порт — server хүсэлт хүлээж буй "цонхны дугаар", PostgreSQL-ийнх ихэвчлэн 5432.
Энэ хичээлийг бичих үед PostgreSQL-ийн хамгийн сүүлийн тогтвортой хувилбар нь 18 байсан (19 нь туршилтын шатандаа). Хэрэв та уншиж байх үед 19 тогтвортой хувилбар гарсан бол түүнийг суулгаж болно — алхмууд бараг ижил, энэ сургалтын бүх SQL хоёр хувилбар дээр ажиллана. Хувилбарын дугаар гарч ирэх газар бүрт өөрийн хувилбарын дугаараа орлуулан уншаарай. Алхам бүрийг дуусгаад дараагийнх руу шилжээрэй — алдаа гарвал яг тэр алхмын доорх тайлбарыг хараарай.
Архивын алба байгуулахад гурван зүйл хэрэгтэй. Нэгдүгээрт, байр ба ажилтан — ажлын цагийн турш цонхны цаана суух жижүүр. PostgreSQL-ийн service бол тэр жижүүр: компьютер асахад тэр ажилдаа ирж, унтрахад гэр рүүгээ явна, та түүнийг өдөр бүр дуудах шаардлагагүй. Хоёрдугаарт, гол түлхүүр — архивын бүх өрөөг нээж, шинэ ажилтан томилж, журам өөрчилж чадах цорын ганц түлхүүр. Түүнийг алдвал архиваа удирдах эрхээ алдана, хулгайд алдвал бусад хүн удирдах болно. Гуравдугаарт, цонхны дугаар — зочид “5432-р цонх руу оч” гэж мэдэж байж л хүсэлтээ өгнө.
Энэ гурвыг суулгагч бүгдийг нь танаас асууна. Ихэнх асуултад анхдагч хариулт зөв, харин түлхүүрийг (нууц үг) зөвхөн та л сонгож чадна.
Вэб хөтчөөрөө postgresql.org/download/windows хаягаар орно. Энэ бол PostgreSQL-ийн албан ёсны хуудас. Тэнд “Interactive installer by EDB” гэсэн хэсэг байгаа — EDB бол PostgreSQL-ийн Windows суулгагчийг бэлддэг компани бөгөөд албан ёсны хуудас түүн рүү чиглүүлдэг.
Download the installer холбоос дээр дарна. EDB-ийн татах хуудас нээгдэнэ.
Хүснэгтээс хамгийн сүүлийн тогтвортой хувилбарын мөрийг (18.x) олж, Windows x86-64 баганын татах товчийг дарна. postgresql-18.x-windows-x64.exe гэх мэт нэртэй, 300-400 МБ орчим файл татагдана.
[Зураг: EDB татах хуудас, хувилбар 18-ийн мөр ба Windows x86-64 товч тодруулсан]
Бүлэг 1-д DB Browser-ийн 32-bit, 64-bit, ARM64 хувилбаруудыг сонгож байсан бол энд сонголт энгийн: PostgreSQL-ийн одоогийн хувилбарууд зөвхөн 64-bit Windows-д зориулагдсан. Хэрэв таны компьютер 32-bit бол (Бүлэг 1, Хичээл 2-ын Алхам 1-ээр шалгаж болно) PostgreSQL суулгах боломжгүй — энэ тохиолдолд Бүлэг 10-аас хойшхи хичээлүүдийг уншиж, ойлголтоо авч болно.
Суулгагчийг ажиллуулахаасаа өмнө Монголд онцгой хамааралтай нэг асуудлыг шалгая. Windows-ийн хэрэглэгчийн нэр кирилл үсэг эсвэл зай агуулсан бол (жишээ нь C:\Users\Дөлгөөн) PostgreSQL-ийн суулгагч зарим компьютерт түр файлуудаа тэр хавтсанд хадгалах үед бүтэлгүйтэж болно. Үүнийг шалгахын тулд File Explorer-оор C:\Users хавтас руу ороод өөрийн хавтасны нэрийг хараарай.
Хэрэв нэр латин үсэг, зайгүй (C:\Users\Dulguun) бол Алхам 3 руу шилжинэ. Хэрэв кирилл эсвэл зайтай бол урьдчилан сэргийлэх энгийн арга бий: суулгагчийг түр хавтсыг латин замд заасан PowerShell-ээс ажиллуулах.
File Explorer-оор C:\ дотор temp нэртэй хавтас үүсгэнэ.
PowerShell-ийг нээнэ (Start → “PowerShell” гэж хайна).
Дараах гурван мөрийг нэг нэгээр нь ажиллуулна. Сүүлийн мөрийн файлын замыг өөрийн татсан файлын бодит нэр, байршлаар солино:
powershell
$env:TEMP = "C:\temp"
$env:TMP = "C:\temp"
& "$HOME\Downloads\postgresql-18.0-1-windows-x64.exe"Эхний хоёр мөр юу гэж хэлж байна вэ гэвэл: "энэ PowerShell цонхноос эхлүүлэх програмуудад түр файлуудын хавтас нь C:\temp байна." Гурав дахь мөр суулгагчийг эхлүүлнэ. Энэ өөрчлөлт зөвхөн энэ PowerShell цонх болон түүнээс эхэлсэн суулгагчид хамаарна — Windows-ийн бусад тохиргоонд нөлөөлөхгүй. Ингэж эхлүүлсэн бол Алхам 3-ын эхний алхмыг алгасна.
Татсан .exe файл дээр давхар дарна (Алхам 2-ын PowerShell аргыг хэрэглэсэн бол суулгагч аль хэдийн нээгдсэн). Windows “Do you want to allow this app to make changes to your device?” гэж асуувал Yes.
Setup цонх нээгдэнэ. Next дарна.
Installation Directory — програм суулгах хавтас. Анхдагч C:\Program Files\PostgreSQL\18 хэвээр үлдээж Next.
Select Components — дөрвөн бүрэлдэхүүн хэсэг харагдана. Эхний гурвыг тэмдэглэсэн хэвээр үлдээнэ: PostgreSQL Server (архивын алба өөрөө), pgAdmin 4 (график удирдлагын програм, дараагийн хичээлд танилцана), Command Line Tools (psql гэх мэт терминалын хэрэгслүүд, мөн дараагийн хичээлд). Stack Builder-ийн тэмдэглэгээг арилгаж болно — энэ нь нэмэлт хэрэгсэл татах програм бөгөөд бидэнд хэрэггүй. Next.
Data Directory — өгөгдлийн файлуудын хавтас. Анхдагч C:\Program Files\PostgreSQL\18\data хэвээр Next. Энэ хавтсанд хэзээ ч гараар гар хүрэхгүй — өмнөх хичээлийн "файлд зөвхөн server гар хүрдэг" гэсэн зарчим.
Password — энэ бол хамгийн чухал алхам. Доорх "Нууц үгийн сахилга бат" хэсгийг уншаад буцаж ирээрэй.
Port — анхдагч 5432 хэвээр Next. Хэрэв суулгагч 5433 гэх мэт өөр тоо санал болговол таны компьютерт өмнө нь PostgreSQL суусан байна гэсэн үг — доорх Түгээмэл алдаанууд хэсгийг хараарай.
Advanced Options — Locale гэсэн сонголт. Анхдагч [Default locale] хэвээр Next.
Pre Installation Summary — сонголтуудын жагсаалт. Шалгаад Next.
Ready to Install — Next. Суулгалт хэдэн минут үргэлжилнэ.
Төгсгөлийн цонхонд “Launch Stack Builder at exit?” гэсэн тэмдэглэгээ байвал арилгаад Finish дарна.
[Зураг: Select Components цонх, Stack Builder-ийн тэмдэглэгээ арилгасан]
[Зураг: Password цонх]
[Зураг: Port цонх, 5432]
Password алхам дээр та postgres гэсэн хэрэглэгчийн нууц үгийг тогтооно. Энэ хэрэглэгч бол superuser — архивын гол түлхүүрийн эзэн: бүх өгөгдлийн санг үүсгэх, устгах, бусад хэрэглэгчдийг удирдах эрхтэй. Энэ нууц үгийг Бүлэг 10, 11, 15-ын бараг бүх хичээлд ашиглана.
Нууц үг сонгохдоо хэдэн дүрэм баримтлаарай. Нэгдүгээрт, өөр газар ашигладаг нууц үгээ (имэйл, банк, нийгмийн сүлжээ) бүү давтаарай — хэрэв энэ нууц үг хэзээ нэгэн цагт код дотор эсвэл тохиргооны файлд санамсаргүй бичигдвэл бусад бүртгэл тань аюулд орохгүй. Хоёрдугаарт, латин үсэг, тоо ашиглаарай. Гуравдугаарт, — Монголд онцгой чухал — нууц үгээ бичихээсээ өмнө гарын байрлал англи (EN) гэдгийг шалгаарай. Хэрэв гар монгол байрлалд байхад “postgres123” гэж бичвэл суулгагч кирилл үсгүүдийг хүлээн авч, дараа нь англи байрлалаар оруулахад нууц үг таарахгүй — мөн суулгагч нууц үгийг хоёр удаа асуудаг тул хоёр удаа ижил кирилл бичигдэж, алдааг анзаарахгүй өнгөрнө.
Эцэст нь нууц үгээ найдвартай газар тэмдэглээрэй — нууц үгийн менежер эсвэл аюулгүй газар хадгалсан цаас. PostgreSQL-ийн superuser-ийн нууц үгийг мартсан тохиолдолд сэргээх арга бий ч тохиргооны файл засах шаардлагатай, төвөгтэй ажил. Энэ бол таны хувийн, суралцах зориулалттай server тул хэт төвөгтэй нууц үг хэрэггүй — гэхдээ санах, давтагдахгүй байх хоёр шаардлагыг хангасан байх ёстой.
Суулгалт дууссаны дараа PostgreSQL server аль хэдийн ажиллаж эхэлсэн байх ёстой. Үүнийг Windows-ийн service-үүдийн жагсаалтаас шалгая.
Гарын Windows + R товчийг дарж, нээгдэх цонхонд services.msc гэж бичээд Enter.
Services цонх нээгдэнэ. Жагсаалтаас postgresql-x64-18 гэсэн мөрийг олоорой (нэрээр эрэмбэлэгдсэн тул “p” үсгийн хэсэгт).
Тэр мөрийн Status баганад Running, Startup Type баганад Automatic гэж бичсэн байх ёстой.
[Зураг: Services цонх, postgresql-x64-18 мөр — Running, Automatic]
Энэ мөр юу гэж хэлж байна вэ гэвэл: “PostgreSQL 18 server одоо ажиллаж байна, мөн компьютер асах бүрт автоматаар эхэлнэ.” Энэ бол зүйрлэлийн жижүүр — та юу ч хийлгүйгээр тэр ажилдаа бэлэн. Энэ нь SQLite-аас ялгаатай гол зүйл: DB Browser-ийг хаахад SQLite алга болдог байсан бол PostgreSQL ямар ч програм нээгээгүй байхад ч арын хэсэгт хүлээсээр байна. Хэрэв та компьютерийн нөөцийг хэмнэхийг хүсвэл тэр мөр дээр баруун товч дарж Stop сонгож болох бөгөөд дараа нь Start-аар эргүүлж асаана. Startup Type-ийг Manual болговол компьютер асахад автоматаар эхлэхгүй — гэвч энэ сургалтын турш Automatic-аар үлдээхийг зөвлөж байна.
Суулгагч psql гэх мэт терминалын хэрэгслүүдийг C:\Program Files\PostgreSQL\18\bin хавтсанд суулгасан ч PowerShell тэднийг хаанаас хайхаа мэдэхгүй. Үүнийг PowerShell-д заах хэрэгтэй — "Хөгжүүлэгчийн хэрэгсэл" сургалтад Git-ийн тохиргоонд PATH-тай уулзаж байсан бол энэ танил ажил.
Start цэсэд “environment” гэж бичээд Edit the system environment variables сонгоно.
Нээгдэх цонхны Environment Variables... товч дээр дарна.
Дээд хэсэгт (User variables) Path гэсэн мөрийг сонгоод Edit... дарна.
New дарж, C:\Program Files\PostgreSQL\18\bin гэж бичнэ (өөр хувилбар суулгасан бол 18-ыг солино).
Бүх цонхонд OK дарж хаана.
Нээлттэй байгаа бүх PowerShell цонхыг хаагаад шинэ PowerShell нээнэ — PATH-ийн өөрчлөлт зөвхөн шинэ цонхонд хүчинтэй.
Одоо шинэ PowerShell-д ажиллуулна:
powershell
psql --versionҮр дүн:
psql (PostgreSQL) 18.0Энэ мөр юу гэж хэлж байна вэ гэвэл: “psql хэрэгсэл олдлоо, PostgreSQL 18.0 хувилбартай.” Таны жижиг хувилбарын дугаар (18.0, 18.1 гэх мэт) өөр байж болно.
Server ажиллаж байгаа, хэрэгсэл бэлэн. Одоо анх удаа архивын цонхоор хүсэлт өгье. PowerShell-д:
powershell
psql -U postgresЭнэ тушаал юу гэж хэлж байна вэ гэвэл: “psql-ээр postgres хэрэглэгчийн нэрээр PostgreSQL server-т холбогд.” Хаяг, порт заагаагүй тул psql анхдагч утгуудыг — энэ компьютер, 5432 — ашиглана. Хариуд нь:
Password for user postgres:Алхам 3-т тогтоосон нууц үгээ бичнэ (гарын байрлал EN!). Бичих үед дэлгэцэнд юу ч харагдахгүй — од ч, цэг ч — энэ хэвийн бөгөөд нууц үгийг хажуунаас харахаас хамгаалдаг. Enter дарна. Амжилттай бол:
psql (18.0)
WARNING: Console code page (437) differs from Windows code page (1252)
8-bit characters might not work correctly. See psql reference
page "Notes for Windows users" for details.
Type "help" for help.
postgres=#Сүүлийн мөр postgres=# бол psql-ийн урилга (prompt): “postgres өгөгдлийн сантай холбогдсон, тушаал хүлээж байна.” Төгсгөлийн # тэмдэг нь та superuser-ээр холбогдсоныг илэрхийлнэ. Дунд нь гарсан WARNING мөрийг одоохондоо үл тоомсорлож болно — энэ нь кирилл үсгийг терминалд харуулахтай холбоотой бөгөөд дараагийн хичээлд шийднэ.
Анхны query-гээ ажиллуулъя:
sql
SELECT version();Үр дүн нь PostgreSQL 18.0, compiled by Visual C++ ... гэх мэт урт мөр. Энэ query юу гэж хэлж байна вэ гэвэл: "энэ server-ийн хувилбарыг харуул." Бүлэг 1-ийн SELECT 2 + 3;-ийн нэгэн адил FROM-гүй SELECT — PostgreSQL-д ч ажиллана. psql-ээс гарахын тулд:
\qШалгах цэг: services.msc-д postgresql-x64-18 — Running. psql --version нь хувилбарыг харуулна. psql -U postgres нууц үгээр холбогдож postgres=# урилга гарна. Хэрэв гурвуулаа ажилласан бол таны компьютерт архивын алба нээгдлээ.
Хэрэв сонирхож байвал services.msc-д PostgreSQL service-ийг Stop хийгээд psql -U postgres ажиллуулж үзээрэй — ямар алдаа гарахыг хараарай (доорх Түгээмэл алдаанууд хэсэгт уншина). Дараа нь Start хийгээд дахин холбогдоорой. Энэ нь “server унтарсан бол зочин холбогдож чадахгүй” гэдгийг өөрийн нүдээр харах хамгийн хурдан арга. Мөн psql-д санаатайгаар буруу нууц үг оруулж, мессежийг уншиж болно. Эдгээр нь зөвхөн санал бөгөөд дараагийн хичээлүүд тэдгээрийг хийсэн гэж тооцохгүй.
Суулгалтын төгсгөлд “Problem running post-install step”. Суулгалтын сүүлийн хэсэгт “Problem running post-install step. Installation may not complete correctly. The database cluster initialisation failed.” гэсэн цонх гарч болно. Энэ мессеж юу гэж хэлж байна вэ гэвэл: "суулгалтын дараах алхамд асуудал гарлаа; өгөгдлийн сангийн кластерыг эхлүүлэх ажил бүтэлгүйтлээ." Ихэнхдээ Алхам 2-т дурдсан кирилл эсвэл зайтай хэрэглэгчийн нэрийн асуудал, эсвэл антивирус програм суулгагчийг саатуулсантай холбоотой. Засах арга: PostgreSQL-ийг Settings → Apps-аас устгаж, C:\Program Files\PostgreSQL хавтас үлдсэн бол түүнийг ч устгаад, Алхам 2-ын PowerShell аргаар дахин суулгах. Антивирус сэжиглэгдвэл суулгах хугацаанд түр унтраах.
Порт 5432 эзлэгдсэн. Port алхамд суулгагч 5433 санал болговол таны компьютерт өмнө нь өөр PostgreSQL суусан байна. Хоёр сонголт бий: 5433-ыг хүлээн авах (тэгвэл дараагийн бүх холболтод -p 5433 нэмэх шаардлагатай), эсвэл хуучин суулгалтыг устгаад дахин суулгах. Хуучин суулгалтыг хэрэглэдэггүй бол устгах нь энэ сургалтын турш хамгийн хялбар байх болно.
psql : The term 'psql' is not recognized. PowerShell-д psql гэж бичихэд “The term ‘psql’ is not recognized as the name of a cmdlet, function, script file, or operable program.” гэсэн улаан мессеж гарвал PATH тохируулаагүй эсвэл хуучин PowerShell цонх ашиглаж байна. Энэ мессеж юу гэж хэлж байна вэ гэвэл: “psql гэдэг нэр танигдсангүй.” Алхам 5-ыг шалгаж, PowerShell-ийг хаагаад шинээр нээнэ. Түр шийдэл болгон Start цэсний SQL Shell (psql) товчлолыг ашиглаж болно — тэр нь PATH-гүйгээр ажилладаг.
password authentication failed for user "postgres". Холбогдох үед энэ мессеж гарвал нууц үг буруу. Мессеж юу гэж хэлж байна вэ гэвэл: “postgres хэрэглэгчийн нууц үгийн баталгаажуулалт бүтэлгүйтлээ.” Хамгийн түгээмэл шалтгаан нь гарын байрлал — монгол байрлалд байхад бичсэн. Байрлалаа EN болгоод дахин оролдоорой. Хэрэв суулгах үед ч монгол байрлалд бичсэн байж магадгүй гэж сэжиглэвэл тэр байрлалаар мөн оролдож үзээрэй.
Connection refused. psql холбогдох гэхэд “connection to server at “localhost” (::1), port 5432 failed: Connection refused” гэх мэт мессеж гарвал server ажиллахгүй байна. Энэ мессеж юу гэж хэлж байна вэ гэвэл: “localhost-ийн 5432 порт дээрх server-т холбогдох оролдлого татгалзагдлаа” — цонхны цаана жижүүр алга. services.msc-д PostgreSQL service-ийн төлөвийг шалгаж, Running биш бол Start дарна. Хэрэв Start хийхэд алдаа гарвал суулгалт бүрэн биш байж магадгүй — эхний алдааг хараарай.
Энэ хичээлд та PostgreSQL-ийг Windows компьютертээ суулгалаа. Албан ёсны хуудаснаас EDB-ийн суулгагчийг татаж, кирилл хэрэглэгчийн нэрийн асуудлаас урьдчилан сэргийлж, server, pgAdmin, терминалын хэрэгслүүдийг суулгалаа. Superuser postgres-ийн нууц үгийг давтагдахгүй, латин үсгээр, англи гарын байрлалаар сонгож найдвартай хадгалах сахилга батыг сурлаа. PostgreSQL нь Windows-ийн service болж компьютер асах бүрт автоматаар ажилладгийг services.msc-ээс шалгаж, 5432 портоор хүсэлт хүлээдгийг мэдлээ. PATH-д bin хавтсыг нэмж, psql -U postgres-ээр анх удаа холбогдож, SELECT version();-ийг ажиллууллаа.
Дараагийн хичээлд PostgreSQL-тэй ажиллах хоёр хэрэгслийг танилцуулна. pgAdmin бол DB Browser-ийн PostgreSQL дахь төрөл — график цонх. psql бол терминалын хэрэгсэл бөгөөд мэргэжлийн хөгжүүлэгч бүрийн өдөр тутмын ур чадвар. Бид psql-ийн үндсэн тушаалуудыг сурч, анхны өгөгдлийн сангаа үүсгэж, кирилл үсгийн WARNING-ийг шийдэж, холболтын алдааг уншиж сурна.
Бүртгэлтэй болсноор энэ сургалтын бүх хичээлд хандах эрх авна.