הקדמה
מערכות ניהול מסדי נתונים רצונליות הן רכיב מרכזי במגוון אתרי אינטרנט ויישומים. הן מספקות דרך מובנית לאחסון, לארגון ולגישה למידע.
PostgreSQL, או Postgres, הוא מערכת ניהול מסדי נתונים רצונלית שמספקת מימוש של שפת השאילתות SQL. היא תואמת תקנים ומציעה מספר תכונות מתקדמות כמו עסקאות אמינות ואבטחה גבוהה ללא נעילת קריאה.
מדריך זה מדגיש איך להתקין את PostgreSQL על שרת Ubuntu 22.04. הוא גם מספק הוראות לניהול מסדי נתונים כללי.
דרישות מקדימות
כדי להמשיך עם המדריך הזה, תצטרך שרת Ubuntu 22.04 שהוגדר בהתאם להוראות שלנו להגדרת התקנה ראשונית לשרת Ubuntu 22.04. לאחר השלמת ההוראות המקדמות האלו, השרת שלך צריך לכלול משתמש לא-root עם הרשאות sudo וגישה לגישה בסיסית.
שלב 1 — התקנת PostgreSQL
המאגרים המוגדרים כברירת המחדל ב־Ubuntu מכילים חבילות Postgres, ולכן ניתן להתקין אותם באמצעות מערכת האריזה apt
.
אם לא עשית זאת לאחרונה, עדכן את אינדקס החבילות המקומי של השרת:
לאחר מכן, התקן את חבילת ה־Postgres יחד עם חבילת -contrib
שמוסיפה כמה יכולות ותכונות נוספות:
ודא שהשרת פועל באמצעות פקודת systemctl start
:
עכשיו, שהתוכנה מותקנת ופועלת, נוכל להתעסק בכיצד היא פועלת ואיך היא עשויה להיות שונה ממערכות מינהל מסדי נתונים רציניות אחרות שאולי השתמשת בהן.
שלב 2 — שימוש בתפקידים ומסדי נתונים של PostgreSQL
כברירת מחדל, Postgres משתמשת במושג הנקרא תפקידים כדי לטפל באימות ובהרשאות. אלה, בדרכים מסוימות, דומים לחשבונות רגילים בסגנון Unix, אך Postgres לא מבדילה בין משתמשים וקבוצות ובמקום זאת מעדיפה את המונח הגמיש יותר "תפקיד".
בעת התקנה, Postgres מוגדר להשתמש באימות על ידי עמית (peer authentication), כלומר הוא משווה תפקידים ב-Postgres עם חשבון מערכת Unix/Linux תואם. אם תפקיד קיים בתוך Postgres, שם משתמש Unix/Linux באותו שם יכול להיכנס כאותו תפקיד.
לפי הליך ההתקנה, נוצר חשבון משתמש בשם postgres הקשור לתפקיד המוגדר כברירת מחדל של Postgres. כדי להשתמש ב-Postgres, ניתן להתחבר לחשבון זה.
ישנם כמה דרכים להשתמש בחשבון זה כדי לגשת ל-Postgres.
החלפת חשבון לחשבון postgres
עבורו לחשבון postgres בשרת שלך על ידי הקלדת:
עכשיו ניתן לגשת למסוף של PostgreSQL מיידית על ידי הקלדה של:
משם ניתן להתקשר עם מערכת ניהול מסד הנתונים ככל הצורך.
צא מהמסוף של PostgreSQL על ידי הקלדה של:
זה יביא אותך חזרה למסוף הפקודות של משתמש ה-Linux של postgres.
גישה למסוף של Postgres מבלי להחליף חשבונות
אתה יכול גם להריץ את הפקודה שתרצה עם החשבון postgres ישירות עם sudo
.
לדוגמה, בדוגמה האחרונה, הורשת להיכנס למצב ה-Prompt של Postgres על ידי החלפה תחילה למשתמש postgres ואז הרצת psql
כדי לפתוח את ה-Prompt של Postgres. ניתן לעשות זאת בצעד אחד על ידי הרצת הפקודה היחידה psql
כמשתמש postgres עם sudo
, כמו כן:
זה יכניס אותך ישירות ל-Postgres בלי המיועד bash
בין הפקודות.
שוב, אתה יכול לצאת מההפעלה האינטראקטיבית של Postgres על ידי קלידה של:
הרבה מקרים דורשים יותר משתמש אחד ב-Postgres. קרא כדי ללמוד כיצד להגדיר אלו.
שלב 3 — יצירת תפקיד חדש
כרגע, יש לך את התפקיד postgres מוגדר במסד הנתונים. באפשרותך ליצור תפקידים חדשים מהשורת פקודה עם הפקודה createuser
. הדגל --interactive
יפעיל אותך לקלט שם של התפקיד החדש וגם ישאל האם יש לו הרשאות סופר משתמש.
אם אתה מחובר כמשתמש החשבון postgres, תוכל ליצור משתמש חדש על ידי קלידה של:
אם, במקום זאת, אתה מעדיף להשתמש ב-sudo
עבור כל פקודה בלי להחליף מהחשבון הרגיל שלך, הקלד:
התסריט יבקש ממך בחירות מסוימות ו, בהתבסס על התגובות שלך, יבצע פקודות Postgres נכונות כדי ליצור משתמש לפי המפרטים שלך.
OutputEnter name of role to add: sammy
Shall the new role be a superuser? (y/n) y
ניתן לקבל שליטה נוספת על ידי העברת דגלים נוספים. ניתן לבדוק את האפשרויות על ידי הסתכלות על עמוד ה-man
עבור פקודת ה-createuser
:
ההתקנה שלך של Postgres כעת מכילה משתמש חדש, אך עדיין לא הוספת כל בסיסי נתונים. המקטע הבא מתאר את תהליך זה.
שלב 4 — יצירת בסיס נתונים חדש
עוד הנחה שמערכת האימות של Postgres עושה כברירת מחדל היא שבשביל כל תפקיד המשמש להתחברות, יהיה לתפקיד זה בסיס נתונים באותו השם שהוא יכול לגשת אליו.
כך שאם המשתמש שיצרת במקטע הקודם נקרא sammy, התפקיד הזה ינסה להתחבר לבסיס נתונים הקיים גם הוא בשם "sammy" כברירת מחדל. ניתן ליצור את בסיס הנתונים המתאים באמצעות פקודת ה-createdb
.
אם אתה מחובר כמשתמש ה-postgres, יש להקליד משהו דומה למטה:
אם, במקום זאת, אתה מעדיף להשתמש ב-sudo
עבור כל פקודה מבלי להחליף מהחשבון הרגיל שלך, יש להקליד משהו כזה:
הגמישות הזו מספקת נתיבים מרובים ליצירת בסיסי נתונים כפי הצורך.
שלב 5 — פתיחת פרומפט של Postgres עם התפקיד החדש
כדי להתחבר עם אימות על ידי עמית, תצטרך משתמש Linux בשם זהה לשם התפקיד והמסד הנתונים שלך.
אם אין לך משתמש Linux תואם זמין, תוכל ליצור אחד באמצעות פקודת adduser
. עליך לעשות זאת מחשבון ה- root הלא פעיל שלך עם הרשאות sudo
(שפה, לא מחובר כמשתמש ה- postgres):
פעם שהחשבון החדש זמין, תוכל להחליף ולהתחבר למסד הנתונים על ידי הקלדת:
או, תוכל לעשות זאת באופן מקוון:
פקודה זו תכניס אותך למערכת באופן אוטומטי, בהנחה שכל הרכיבים הוגדרו בצורה תקינה.
אם ברצונך שהמשתמש שלך יתחבר למסד נתונים שונה, תוכל לעשות זאת על ידי ציון המסד כך:
לאחר ההתחברות, תוכל לבדוק את מידע התחברות הנוכחי שלך על ידי הקלדת:
OutputYou are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".
זה מועיל אם אתה מתחבר למסדי נתונים לא דיפולטיים או עם משתמשים לא דיפולטיים.
שלב 6 — יצירת ומחיקת טבלאות
עכשיו שאתה יודע כיצד להתחבר למערכת מסד הנתונים PostgreSQL, תוכל ללמוד כמה משימות בסיסיות של ניהול Postgres.
התחביב סיסמת הבסיס ליצירת טבלאות היא כדלקמן:
CREATE TABLE table_name (
column_name1 col_type (field_length) column_constraints,
column_name2 col_type (field_length),
column_name3 col_type (field_length)
);
פקודה זו נותנת לטבלה שם, ואז מגדירה את העמודות כמו גם את סוג העמודה ואת אורך השדה המרבי. באופציה, תוכל להוסיף אילוצים עבור כל עמודה.
ניתן ללמוד עוד על יצירת טבלאות על ידי מעקב אחר המדריך שלנו בנושא כיצד ליצור ולנהל טבלאות ב־SQL.
לצורך הדגמה, צור את הטבלה הבאה:
פקודה זו תיצור טבלה שמבצעת מלאי של ציוד לגני משחק. העמודה הראשונה בטבלה תחזיק מספרי זיהוי ציוד מסוג serial
, שהוא מספר שלם המתרגם אוטומטית. עמוד זה גם מכיל את האילוץ PRIMARY KEY
שמשמעו שערכים בו חייבים להיות ייחודיים ולא להיות ריקים.
השורות הבאותיהן יוצרות עמודות עבור סוג הציוד והצבע שלו בהתאם, כאף אחת מהן אינה יכולה להיות ריקה. השורה שאחריהן יוצרת עמודה למיקום עם אילוץ שדרוש שהערך יהיה אחד משמונה ערכים אפשריים. השורה האחרונה יוצרת עמודת תאריך שמקליטה את התאריך בו הותקן הציוד.
עבור שתי העמודות (equip_id
ו־install_date
), הפקודה אינה מציינת אורך שדה. הסיבה לכך היא שסוגי נתונים מסוימים אינם דורשים אורך קבוע מראש משום שהאורך או הפורמט נתמך.
בדוק את הטבלה החדשה שלך על ידי הקלדה:
Output List of relations
Schema | Name | Type | Owner
--------+-------------------------+----------+-------
public | playground | table | sammy
public | playground_equip_id_seq | sequence | sammy
(2 rows)
השולחן של הגן שלך כאן, אבל יש גם משהו בשם playground_equip_id_seq
שהוא מסוג sequence
. זהו ייצוג של הסוג serial
שנתת לעמודת equip_id
. זה שומר על עקבות אחר המספר הבא בסדר ונוצר אוטומטית עבור עמודות מסוג זה.
אם ברצונך להציג רק את הטבלה ללא הרצף, תוכל להקליד:
Output List of relations
Schema | Name | Type | Owner
--------+------------+-------+-------
public | playground | table | sammy
(1 row)
עם טבלה מוכנה, בואו נשתמש בה כדי לתרגל בניהול נתונים.
שלב 7 — הוספת, שאילתה ומחיקת נתונים בטבלה
עכשיו שיש לך טבלה, תוכל להוסיף כמה נתונים אליה. כדי לדוגמה, הוסף מגלשה ונדנדה על ידי קריאה לטבלה שבה ברצונך להוסיף, תתן שמות לעמודות ולאחר מכן תספק נתונים עבור כל עמודה, כמו כן:
עליך להיזהר בעת הזנת הנתונים כדי למנוע כמה דברים נפוצים. למשל, אל תעטוף את שמות העמודות בסימני מרכאות, אך הערכים של העמודות שאתה מזין צריכים לכלול מרכאות.
דבר נוסף לשים לב אליו הוא שאינך מזין ערך עבור העמודה equip_id
. זה בגלל שהערך הזה נוצר אוטומטית בכל פעם שמוסיפים שורה חדשה לטבלה.
גש למידע שהוספת על ידי הקלדה:
Output equip_id | type | color | location | install_date
----------+-------+--------+-----------+--------------
1 | slide | blue | south | 2017-04-28
2 | swing | yellow | northwest | 2018-08-16
(2 rows)
שים לב שה- equip_id
שלך מולא בהצלחה ושכל הנתונים האחרים שלך מאורגנים כראוי.
אם השקופית בגלישה שבגני המשחק שבמקום שבו אתה צריך להסיר אותה, אתה יכול גם להסיר את השורה מהטבלה שלך על ידי הקלדת:
שאילתה של הטבלה שוב:
Output equip_id | type | color | location | install_date
----------+-------+--------+-----------+--------------
2 | swing | yellow | northwest | 2018-08-16
(1 row)
שים לב שהשורה slide
כבר אינה חלק מהטבלה.
שלב 8 — הוספת ומחיקת עמודות מטבלה
לאחר שיצרת טבלה, אתה יכול לשנות אותה על ידי הוספת או הסרת עמודות. הוסף עמודה כדי להציג את ביקור התחזוקה האחרון עבור כל ציוד על ידי הקלדת:
הצג שוב את מידע הטבלה שלך. עמודה חדשה נוספה אך לא הוזנו נתונים בה:
Output equip_id | type | color | location | install_date | last_maint
----------+-------+--------+-----------+--------------+------------
2 | swing | yellow | northwest | 2018-08-16 |
(1 row)
אם תגלה שצוות העבודה שלך משתמש בכלי נפרד כדי לעקוב אחר היסטוריית התחזוקה, אתה יכול למחוק את העמודה על ידי הקלדת:
זה מוחק את העמודה last_maint
וכל הערכים שנמצאים בתוכה, אך משאיר את כל הנתונים האחרים שלמים.
שלב 9 — עדכון נתונים בטבלה
עד כה, למדת כיצד להוסיף רשומות לטבלה וכיצד למחוק אותן, אך מדריך זה עדיין לא כיסה איך לשנות ערים קיימות.
אתה יכול לעדכן את ערכי הכניסה הקיימים על ידי שאילתת המופע שאתה רוצה והגדרת העמודה לערך שברצונך להשתמש בו. אתה יכול לשאול על הרשומה של swing
(זה יתאים לכל swing בטבלה שלך) ולשנות את הצבע שלו ל- red
. זה יכול להיות שימושי אם נתת צביעה לסט של הנדנדות:
אתה יכול לוודא שהפעולה הייתה מוצלחת על ידי שאילתת הנתונים שוב:
Output equip_id | type | color | location | install_date
----------+-------+-------+-----------+--------------
2 | swing | red | northwest | 2018-08-16
(1 row)
המגלשה רשומה כעת כצבע אדום.
מסקנה
אתה מוכן עכשיו עם PostgreSQL על השרת שלך ב-Ubuntu 22.04. אם ברצונך ללמוד עוד על Postgres וכיצד להשתמש בו, אנו מזמינים אותך לבדוק את המדריכים הבאים:
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-22-04