מה זה mysqldump וכיצד אני משתמש בו?

תוכן עניינים:

מה זה mysqldump וכיצד אני משתמש בו?
מה זה mysqldump וכיצד אני משתמש בו?
Anonim

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

למה משמש mysqldump?

כלי mysqldump מספק לך כיסוי גם למצבי פשרה בשרת וגם במצבי הגירה. תפקידו הבסיסי הוא לקחת מסד נתונים של MySQL ולזרוק אותו כקובץ טקסט. אבל לא כל קובץ טקסט; הקובץ הוא קבוצה של הצהרות SQL.הצהרות אלו, כאשר הן מבוצעות, בונות מחדש את מסד הנתונים למצב המדויק בו היה בעת ביצוע ה-dump.

השתמש ב-mysqldump כדי ליצור יצוא של מסד נתונים כגיבויים, או בעת העברת מסד הנתונים למארח חדש. בכל מקרה, קובץ הטקסט יובא חזרה לשרת מסד נתונים של MySQL. הוא יבצע את כל הצהרות ה-SQL בקובץ, אשר בונה מחדש את מסד הנתונים למצבו המקורי. החלק הזה לא משתמש בפקודה mysqldump, אבל זה לא יהיה אפשרי גם בלי הכלי הזה.

מסמכי MySQL מפרטים שיטות אחרות לביצוע גיבויים, אך יש להן חסרונות:

  • העתקה חמה של מסד נתונים מ-MySQL Enterprise היא דרך מצוינת להשיג גיבויים אלה - אם לא אכפת לכם מהמחיר של Enterprise.
  • העתקת ספריות הנתונים של מסד הנתונים יכולה להיות מסובכת בעת מעבר בין מערכות הפעלה, מכיוון שהיעדים יהיו שונים.
  • ייצוא לקובץ טקסט מופרד ייתן לך את התוכן, אבל תצטרך ליצור מחדש את המבנה.
  • לעתים קרובות אתה יכול לגבות מסדי נתונים מתוכניות GUI כמו MySQL Workbench. אבל זהו תהליך ידני; לא משהו שאתה יכול לכתוב או לכלול בעבודת אצווה.

התקן את כלי mysqldump

עבור Windows, בדוק את ההוראות שלנו להתקנת MySQL ב-Windows 7 (תהליך ההתקנה זהה עבור Windows 10). ב-macOS, עיין בהנחיות שלנו להתקנת MySQL ב-macOS 10.7 (שוב, ישן יותר אך עדיין ישים). משתמשים במערכות לינוקס מבוססות אובונטו יכולים להשתמש בפקודה הבאה כדי להתקין את לקוח MySQL וכלי השירות:

sudo apt התקנת mysql-client

חלץ MySQL Dump

לאחר ההתקנה, השתמש ב-mysqldump כדי לקבל גיבוי מלא של מסד נתונים.

mysqldump -h [השם או ה-IP של מארח ה-DB שלך] -u [שם המשתמש של DB] -p [שם מסד הנתונים] > db_backup.sql

הנה תיאור של הדגלים המשמשים בפקודה זו:

  • - h: הדגל הזה הוא מארח מסד הנתונים. זה יכול להיות שם מארח מלא (לדוגמה, myhost.domain.com) או כתובת IP. השאר את זה ריק אם אתה מפעיל את הפקודה באותו מארח כמו שרת MySQL.
  • - u: שם המשתמש שלך.
  • - p: אם אבטחת כראוי את התקנת MySQL, תזדקק לסיסמה כדי להתחבר. דגל זה ללא ארגומנט מבקש ממך להזין סיסמה בעת ביצוע הפקודה. לפעמים זה שימושי לספק את הסיסמה ישירות כארגומנט לדגל זה, למשל, בסקריפט גיבוי. אבל בהנחיה, אתה לא צריך, כי אם מישהו קיבל גישה למחשב שלך, הוא יכול לקבל את הסיסמה הזו בהיסטוריית הפקודות.
  • > db_backup.sql: חלק זה אומר ל-mysqldump לכוון את הפלט שלו לקובץ. בדרך כלל, הפקודה מפלטת הכל לקונסולה, כלומר תראה כמה משפטי SQL על המסך. הסמל > מעביר את הפלט לקובץ הטקסט בעל השם. אם הקובץ הזה לא קיים, הוא נוצר באופן אוטומטי.

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

Image
Image

הקובץ מחולק למקטעים. החלק הראשון מגדיר את הטבלה להערות וורדפרס. החלק השני יוצר מחדש את התוכן בטבלאות הללו (בדוגמה זו, רשומות ההערה). כאשר אתה מייבא מחדש את ה-MySQL dump, הפקודה פועלת דרך הקובץ, מבצעת את ההצהרות ובונה מחדש את מסד הנתונים כפי שהיה.

ייבא קובץ MySQL Dump

לפני שאתה מייבא את קובץ ה-dump, תצטרך מסד נתונים שכבר נוצר ואת שם המשתמש והסיסמה החוקיים שלו. אתה צריך גם לקבל את כל ההרשאות עבור מסד הנתונים. אתה לא צריך את הרשאת GRANT, אבל קל יותר להעניק את כולם.

למידע נוסף על הרשאות מסד נתונים לפני שתשנה תפקידי אבטחה במסד הנתונים שלך.

כדי לייבא מחדש את הנתונים שלך, היכנס לשרת MySQL עם הפקודה mysql. הקלד use [שם מסד הנתונים] בהנחיה, והחלף את שם מסד הנתונים. הזן source [filename] והחלף את השם של קובץ ה-dump שלקחת בעבר.

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

Image
Image

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

Image
Image

ישנם שני הבדלים בין הקבצים הללו, מיוצגים על ידי קווים אדומים בחלק העליון והתחתון של פס הגלילה הימני. הראשון הוא השורה שמכילה את שם מסד הנתונים, וזה שונה כי הקבצים נקראו אחרת. השני הוא חותמת הזמן של קובץ ה-dump. זה שונה מכיוון שמסד הנתונים השני נוצר מחדש אחרי הראשון. אחרת, הקבצים זהים לחלוטין, כלומר גם מסדי הנתונים שיצרו אותם.

שאלות נפוצות

    איך מתקנים את שגיאת mysqldump: הגישה נדחתה בעת שימוש בטבלאות נעילה?

    בקש ממנהל מסד הנתונים שלך להעניק לך את הרשאת LOCK. אם זה לא פותר את הבעיה, נסה להפעיל את אותה פקודת mysqldump ולהוסיף את הדגל - -single-transaction, כגון [ $ mysqldump --single-transaction] [-u משתמש] [-p DBNAME] > backup.sql

    האם אתה יכול להשתמש בסעיף "where" עם mysqldump?

    השתמש במשפט WHERE בעת יצירת גיבוי הכולל רק את השורות שממלאות את התנאי הנתון. לדוגמה, כדי לשפוך נתונים רק משורות עם עמודת המזהה גדולה מ-100, הזן "mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql".

מוּמלָץ: