PracticU

חיבור ל-MySQL
פרויקט NodeJS

בלי כתוביותעם כתוביות
PracticU › קורס Terraform - DevOps - Azure & AWS › חיבור ל-MySQL פרויקט NodeJS
מילון מושגים:
MySQL - מערכת ניהול מסדי נתונים יחסיים בקוד פתוח, נפוצה מאוד באתרים וביישומי אינטרנט.
Node.js - סביבת ריצה שמאפשרת להריץ קוד JavaScript מחוץ לדפדפן, בעיקר בצד השרת.
CMD - שורת הפקודה הקלאסית של Windows (Command Prompt), להרצת פקודות ותוכניות בממשק טקסטואלי.
root - משתמש העל במערכות Linux, בעל הרשאות מלאות לכל פעולה. גם הרמה העליונה בעץ של תיקיות או נתונים.
IPv4 - הגרסה הרווחת של פרוטוקול IP, שבה כתובת מורכבת מארבעה מספרים בין 0 ל-255.
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.
משתנה סביבה - ערך בעל שם שמוגדר במערכת ההפעלה ומשמש תוכנות להגדרות, כמו נתיבים או מפתחות תצורה.
שורת פקודה - ממשק טקסטואלי שבו מקלידים פקודות למערכת ההפעלה ומקבלים תגובה בטקסט, במקום להשתמש בעכבר.

חיבור ל-MySQL פרויקט NodeJS
מתחברים ל-MySQL שרץ ב-RDS בענן, מ-CMD ומהכלי הגרפי. ב-RDS אין לנו גישת root למכונה ולמערכת ההפעלה, אלא רק לניהול ה-database עצמו.
השלבים העיקריים
1. בדיקת Security Group: בשירות RDS, ב-Databases, פותחים את המכונה (instance מסוג t3.micro) ורואים את ה-security group בשם AllowMySQL. בחוקי ה-inbound יש חוק לכתובת IPv4 מהבית וחוק שמאפשר כניסה לכל ה-security group של השרתים.
2. החיבור: mysql -h <endpoint> -u admin -p. ה-endpoint הוא שם ה-DNS של המכונה מ-RDS databases. המשתמש והסיסמה הם אלה שהוגדרו בעת יצירת המכונה.
3. תוכן: show databases מציג גם את Practicu, שנוצר בהקמת המכונה, אבל הוא ריק. אחרי use Practicu, show tables מחזיר empty set.
4. טבלה ונתונים: create table עם עמודות ID, name ו-email, ואחר כך שלוש פקודות insert. select * from users מציג שלוש שורות.
שלוש דרכים להעביר סיסמה
1. -p בלי סיסמה: MySQL שואל אינטראקטיבית.
2. -p עם הסיסמה צמודה: עובד, אבל מופיעה אזהרה שזה לא מאובטח.
3. משתנה סביבה MYSQL_PWD: מחברים בלי -p. עם set המשתנה חל רק על חלון ה-CMD הנוכחי. כדי שיחול על כל חלון, מוסיפים אותו ב-Environment Variables ברמת המשתמש (בלי גרשיים) ופותחים CMD חדש. כך אפשר לחלק סקריפטים בלי לחשוף סיסמאות.
כלי גרפי
ב-MySQL Workbench יוצרים חיבור חדש (פלוס), שם השרת הוא ה-endpoint, פורט 3306 והמשתמש admin. אחרי Test connection ההודעה היא successfully made MySQL connection. הסיסמה נלקחה אוטומטית ממשתנה הסביבה. אפשר להוסיף שורה, ו-Apply מריץ insert into.
שימו לב
בלינוקס חשוב להקפיד על אותיות גדולות וקטנות. Practicu.users עם P גדולה עובד, ועם p קטנה לא.
אחרי ההרצאה אפשר להתחבר ל-RDS בשורת פקודה ובכלי הגרפי, בלי לחשוף את הסיסמה.
השיעור הבא בקורס: פקודת Output ב-Terraform פרויקט NodeJS

פרקי ההרצאה: חיבור ל-MySQL פרויקט NodeJS

  1. 00:00

    חיבור ל-MySQL מנוהל ב-RDS

  2. 00:43

    בדיקת החיבורים וה-security group

  3. 01:21

    התחברות עם endpoint ו-user

  4. 01:59

    צפייה בדאטה בייסים הקיימים

  5. 02:37

    יצירת טבלה והכנסת נתונים

תמלול ההרצאה: חיבור ל-MySQL פרויקט NodeJS

הטקסט המלא של הדקות הראשונות בהרצאה «חיבור ל-MySQL פרויקט NodeJS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    שלום לכולם. בסרטון זה נדבר על איך מתחברים לתוך MySQL בענן, לתוך הדאטה בייס שרץ במכונה וירטואלית שאמזון מנהלים עבורי. זה נקרא RDS.

  2. 00:15

    אין לי גישת root לתוך המכונה הזאת. אני לא אדמיניסטרטור שלה, אבל אני יכול לנהל את הדאטה בייס שנמצא בפנים. תוכנת דאטה בייס, אני מנהל אותה, אבל לא את כל מערכת ההפעלה.

  3. 00:28

    אני לא מתעסק בחומרה, בתשתית, ב-VM עצמו. אני מתעסק רק ב-SQL. קודם כל פה ב-AWS אני כותב RDS למעלה. נכנס לתוך סרוויס של ה-RDS ובתוך הסרוויס אני מחפש databases ויש לי מכונה וירטואלית אחת, instance אחד שעובד על הברזל מסוג T שלוש מיקרו.

  4. 00:51

    יש כרגע אפס חיבורים לתוך הדאטה בייס. השאלה איך להתחבר פנימה. קודם כל בואו נלחץ על המכונה הזאת ונראה פה security group. אנחנו רואים שה-security group נקרא AllowMySQL ובתוך ה-security group הזה אני שם כאן V.

  5. 01:09

    אני רואה inbound rules. חוקי כניסה. יש את ה-IPv4 שמאפשר כניסה מהבית שלי ויש עוד חוק, החוק הראשון שמאפשר לכל ה-security group של השרתים להיכנס פנימה.

  6. 01:21

    זה מה שרציתי לוודא שזה פה ועכשיו אני יכול להתחבר. אני כותב MySQL מינוס H ומציין את השם של המכונה. את השם של המכונה אני רואה פה בתוך RDS databases.

  7. 01:35

    לוחץ על המכונה הזאת ויש פה endpoint. ה-endpoint הזה זה למעשה שם DNS של המכונה. אז אני כותב MySQL מינוס H ואת השם הזה, שם של המכונה. מינוס U איזה user.

  8. 01:49

    איך ידעתי שזה Admin? כי כשהקמנו את המכונה נתנו פה את ה-username. אז אני מתחבר עם השם הזה שהקמנו את המכונה. מינוס P ומציין את הסיסמה.

  9. 01:58

    זאת הסיסמה. אתם רואים ה-password הזה. כשהקמנו את המכונה זה מה שנתנו ואנחנו בפנים. אנחנו בתוך MySQL.

  10. 02:05

    אפשר לעשות show databases ואנחנו רואים את הדאטה בייסים שיש לנו בפנים, כולל דאטה בייס של Practicu. מאיפה הדאטה בייס הזה של Practicu נוצר? כי פה כשהקמנו את המכונה נתנו לו את הדאטה בייס.

  11. 02:18

    בואו נכנס לתוך הדאטה בייס אבל אין בו נתונים. זה סתם דאטה בייס ריק שהקמנו תוך כדי יצירה של המכונה הווירטואלית. זאת אומרת, אם נעשה use Practicu, ניכנס פנימה לתוך הדאטה בייס.

  12. 02:32

    Show tables יראה לי empty set. אין אף טבלה בפנים. האמת שאנחנו יכולים לקחת פה כמה פקודות של MySQL. הפקודה הראשונה יוצרת את הטבלה.

  13. 02:43

    create table עם שלוש עמודות ID, name ו-email. עכשיו ב-show tables אתם תראו פתאום טבלת users. select * from users.

  14. 02:53

    הטבלה הזאת היא ריקה. empty set. אבל אני יכול לעשות insert ולהכניס פנימה נתונים. הנה עשיתי insert into users שלוש פעמים.

  15. 03:02

    לעמודת name ו-email הכנסתי את הנתונים האלו. עכשיו ב-select * from users יש שלוש שורות. דרך אגב, יכולנו לרשום את הסיסמה ישירות בתוך הפקודה.

לקורס המלא: קורס Terraform אונליין ל‑DevOps

ההרצאה הקודמת: יצירת AWS Security Group - עבור RDS - פרויקט NodeJS

ההרצאה הבאה: פקודת Output - ב-Terraform - פרויקט NodeJS

הרצאות קשורות מקורסים אחרים

  • חיבור של NodeJS למסד נתונים MySQL
  • הרצאה על Azure MySQL
  • התקנה של mysql
  • פקודות בסיסיות ב-MySQL

קורסים נוספים במסלול

  • קורס AWS - ניהול מכונה וירטואלית בענן
  • קורס קוברנטיקס - Kubernetes
  • קורס Docker - עם Swarm Cluster
  • קורס DevOps - Ansible
  • קורס PowerShell
  • קורס Git ו-GitHub עם Visual Studio