הקדמה
מערכות ניהול מסדי נתונים רצולניים הן רכיב מרכזי במספר רב של אתרי אינטרנט ויישומים. הן מספקות דרך מאורגנת לאחסן, לארגן ולגשת למידע.
PostgreSQL, או Postgres, הוא מערכת ניהול מסדי נתונים רצולניים שמספקת יישום של שפת השאילתא SQL. היא תואמת סטנדרטים וכוללת מספר תכונות מתקדמות כמו עסקאות אמינות וקונקורנסיה ללא נעילות לקריאה.
מדריך זה מדגים כיצד להתקין את Postgres על שרת Ubuntu 20.04. הוא מספק גם הוראות לניהול מסדי נתונים כללי.
1-Click הפעלת מסד נתונים PostgreSQL באמצעות בסיסי נתונים שנהוגים של DigitalOcean. הרשה ל-DigitalOcean להתמקד בהתרחבות, תחזוקה ושדרוגים עבור המסד שלך.
דרישות קדם
כדי לעקוב אחרי המדריך הזה, תצטרך לשרת Ubuntu 20.04 שהוגדר על ידי ביצוע המדריך הגדרת השרת הראשונית עבור Ubuntu 20.04 שלנו. לאחר השלמת המדריך הנדרש הזה, השרת שלך צריך לכלול משתמש לא-root עם הרשאות sudo וגישה בסיסית לגישה לגישה לקיר אש.
שלב 1 — התקנת PostgreSQL
מאגרי הנתונים המוגדרים כברירת מחדל באובונטו מכילים חבילות Postgres, כך שניתן להתקין אותן באמצעות מערכת האריזות apt
.
אם לא עשית זאת לאחרונה, עדכן את אינדקס החבילות המקומי של השרת שלך:
לאחר מכן, התקן את חבילת ה-Postgres יחד עם חבילת -contrib
שמוסיפה כמה יכולות ותוספות נוספות:
וודא שהשרת פועל באמצעות הפקודה systemctl start
:
עכשיו שהתוכנה מותקנת ופועלת, אפשר להתעסק באופן פעולתי ובאופן שהוא שונה ממערכות ניהול בסיסיות נתונים רציונליות אחרות שאולי ניתן השתמשת בהן.
שלב 2 — שימוש בתפקידים ובסדרות של PostgreSQL
ברירת המחדל, Postgres משתמשת במושג הנקרא "תפקידים" כדי לטפל באימות ובאישור. אלה, בצורה מסוימת, דומים לחשבונות רגילים בסגנון Unix, אך Postgres אינה מבחינה בין משתמשים וקבוצות ובמקום זאת מעדיפה את המונח הגמיש יותר "תפקיד".
בעת התקנה, Postgres מוגדרת להשתמש באימות על ידי עמית, שפירושה שהיא משוייכת תפקידים של Postgres עם חשבון מערכת Unix/Linux התואם. אם תפקיד קיים בתוך Postgres, שם משתמש של Unix/Linux באותו השם יכול להיכנס כתפקיד זה.
נפתח תהליך ההתקנה חשבון משתמש בשם postgres המשוייך עם תפקיד המשתמש המוגדר כברירת מחדל של Postgres. על מנת להשתמש ב-Postgres, ניתן להתחבר לחשבון זה.
קיימים כמה דרכים להשתמש בחשבון זה לגישה ל-Postgres.
החלפת חשבון לחשבון postgres
עבור לחשבון postgres בשרת שלך על ידי הקלדת:
כעת ניתן לגשת לפקודת PostgreSQL מיידית על ידי הקלדת:
משם תוכל לפעול עם מערכת הניהול של בסיס הנתונים ככל הצורך.
לצאת מהפקודת PostgreSQL באמצעות הקלדה:
זה יחזיר אותך לפקודת ה-Linux של postgres
.
גישה לעצות Postgres בלי להחליף חשבונות
ניתן גם להריץ את הפקודה שתרצה עם חשבון ה־postgres ישירות באמצעות sudo
.
לדוגמה, בדוגמה האחרונה, התבקשת להגיע למערכת ה־Postgres על ידי החלפת המשתמש למשתמש postgres ואז להריץ psql
כדי לפתוח את מערכת ה־Postgres. ניתן לעשות זאת בשלב אחד על ידי הרצת הפקודה היחידה psql
כמשתמש postgres עם sudo
, כמו כן:
זה יכניס אותך ישירות ל־Postgres בלי המתווך של ה־bash
ביניהם.
שוב, ניתן לצאת מהסשן האינטראקטיבי של Postgres על ידי הקלדת:
המון מקרים נדרשים יותר מתפקיד אחד של Postgres. קרא כדי ללמוד איך להגדיר אלו.
שלב 3 — יצירת תפקיד חדש
כרגע, יש לך את התפקיד postgres מוגדר במסד הנתונים. באפשרותך ליצור תפקידים חדשים מהשורת הפקודה באמצעות הפקודה createrole
. הדגל --interactive
יבקש ממך את שם התפקיד החדש וגם ישאל האם הוא צריך לקבל הרשאות מנהל מערכת.
אם אתה מחובר כמשתמש postgres, תוכל ליצור משתמש חדש על ידי הקלדה:
אם במקום זאת אתה מעדיף להשתמש ב-sudo
לכל פקודה מבלי להחליף מהחשבון הרגיל שלך, הקלד:
הסקריפט יבקש ממך כמה בחירות ו, בהתבסס על התגובות שלך, יבצע את הפקודות של Postgres הנכונות ליצירת משתמש לפי המפרטים שלך.
OutputEnter name of role to add: sammy
Shall the new role be a superuser? (y/n) y
ניתן לקבל שליטה נוספת על ידי מעבר של דגלים נוספים. ניתן לבדוק את האפשרויות בעיון בדף ה-man
:
ההתקנה שלך של Postgres כעת מכילה משתמש חדש, אך עדיין לא הוספת כל מסדי נתונים. הסעיף הבא מתאר את התהליך הזה.
שלב 4 — יצירת מסד נתונים חדש
הנחה נוספת שמערכת האימות של Postgres עושה כברירת מחדל היא שלכל תפקיד המשמש להתחבר, תהיה לו מסד נתונים באותו השם אליו הוא יכול לגשת.
זה אומר שאם המשתמש שיצרת בחלק הקודם נקרא sammy, התפקיד הזה ינסה להתחבר למסד נתונים שגם הוא נקרא "sammy" כברירת מחדל. ניתן ליצור את מסד הנתונים המתאים באמצעות פקודת createdb
.
אם התחברת כמשתמש postgres, תקליד משהו דומה לזה:
אם, במקום זאת, אתה מעדיף להשתמש ב־sudo
עבור כל פקודה בנפרד מבלי להחליף מהחשבון הרגיל שלך, תקליד משהו כמו זה:
הגמישות הזו מספקת מסלולים מרובים ליצירת מסדי נתונים כפי הצורך.
שלב 5 — פתיחת מודע פוסטגרס עם התפקיד החדש
כדי להתחבר עם אימות על פי זהות, יהיה עליך להשתמש במשתמש Linux בשם זהה לאותו התפקיד של Postgres ומסד הנתונים שלך.
אם אין לך משתמש 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)
);
כפי שאתה יכול לראות, פקודות אלו נותנות לטבלה שם, ואז מגדירות את העמודות כמו גם את סוג העמודה ואת אורך הנתונים בשדה. בנוסף, תוכל גם להוסיף באופציה אילוצי טבלה לכל עמודה.
תוכל ללמוד עוד על כיצד ליצור ולנהל טבלאות ב־Postgres כאן.
לצורך הדגמה, יצור את הטבלה הבאה:
הפקודה הזו תיצור טבלה שמערכת מלאי ציוד לגן. העמודה הראשונה בטבלה תחזיק מספרי זיהוי של ציוד מסוג serial
, שהוא מספר שמתבצע באופן אוטומטי. עמודה זו גם כוללת אילוץ של PRIMARY KEY
שככל הנראה אומר שהערכים בתוכה חייבים להיות ייחודיים ולא ריקים.
השורות הבאות יוצרות עמודות עבור סוג הציוד type
ועבור הצבע color
בהתאם, ושתיהן לא יכולות להיות ריקות. השורה אחרי אלו יוצרת עמודת location
וכן אילוץ שדורש שהערך יהיה אחד משמונה ערכים אפשריים. השורה האחרונה יוצרת עמודת date
שמקליטה את התאריך בו הותקן הציוד.
בשני מהעמודות (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 — עדכון נתונים בטבלה
עד כה, למדת כיצד להוסיף רשומות לטבלה וכיצד למחוק אותן, אך בסרטון הלימוד הזה טרם נ covered איך לשנות ערכים קיימים.
ניתן לעדכן את הערכים של רשומה קיימת על ידי שאילתה לרשומה שאתה רוצה והגדרת העמודה לערך שתרצה להשתמש בו. ניתן לשאול את הרשומה swing
(זה יתאים לכל swing בטבלה שלך) ולשנות את הצבע שלו ל red
. זה יכול להיות שימושי אם ציירת את סט הניפוץ בצבע:
תוכל לוודא שהפעולה הצליחה על ידי שאילתת הנתונים שוב:
Output equip_id | type | color | location | install_date
----------+-------+-------+-----------+--------------
2 | swing | red | northwest | 2018-08-16
(1 row)
כפי שתוכל לראות, המגלשה רשומה כעת כאדומה.
מסקנה
אתה כעת מוכן עם PostgreSQL על השרת שלך Ubuntu 20.04. אם ברצונך ללמוד עוד על Postgres וכיצד להשתמש בו, אנו ממליצים לך לבדוק את המדריכים הבאים:
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-20-04