שאלה כיצד ניתן לטעון קובץ sql.gz למסד הנתונים שלי? (ייבוא)


אני מנסה לייבא קובץ SQL gzipped לתוך Mysql ישירות. האם זו הדרך הנכונה?

mysql -uroot -ppassword mydb > myfile.sql.gz

118
2018-05-03 07:06




גם התעלמות בצד gzip של השאלה, החץ שלך מצביע בכיוון הלא נכון ... - Matt Fletcher


תשובות:


zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database

> יכתוב את הפלט של mysql הפקודה ב stdout לתוך הקובץ myfile.sql.gz וזה כנראה לא מה שאתה רוצה. בנוסף, פקודה זו תנחה אותך עבור הסיסמה של המשתמש MySQL "שורש".


187
2018-05-03 07:10



כמנהג אבטחה טוב, הייתי שם את הסיסמה שלי על שורת הפקודה, הייתי נותן mysql לבקש את זה. - Prof. Moriarty
או אפילו טוב יותר: ליצור ~/.my.cnf עם אישורים. ;) - joschi
כמו @Prof. מוריארטי explans, אתה יכול לשנות את הפקודה לא להשתמש את הסיסמה דרך zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database. הוא יידע את הפרמטר האחרון הוא מסד הנתונים שבו אתה רוצה להשתמש, לא את הסיסמה שלך. - bafromca
כדי לתקן מעט את ההערה של פרופ 'מוריארטי, תרגול אבטחה טוב יהיה לא לשים את הסיסמה שלי על שורת הפקודה (איפה זה יהיה מאוחסן בהיסטוריה, או לראות מעל הכתף שלך), ולתת MySQL לבקש את זה. הדגל -P בלבד יגרום ל- MySQL לשאול בהנחיית הסיסמה. - George
+1 עבור משהו זה משאיר את המזבלה מסד הנתונים הארור דחוס - Dmitri DB


כדי להציג סרגל התקדמות בעת ייבוא ​​קובץ sql.gz, הורד pv ולהשתמש בפריטים הבאים:

pv mydump.sql.gz | gunzip | mysql -u root -p

ב CentOS / RHEL, אתה יכול להתקין pv עם yum install pv.

בדביאן / אובונטו apt-get install pv.

ב- MAC, brew install pv


66
2017-11-03 19:46



pv נראה כי גם באובונטו repos (לפחות ב 12.04 LTS הוא), אבל שוב אתה צריך לעשות sudo apt-get install pv להשיג את זה. תודה Banjer, זה מושלם עבור ייבוא ​​מסד נתונים גדול! - toon81
הייתי צריך לרוץ gunzip | mysql -u root my_database_name. זה היה בגלל שאני היה יבוא שולחנות אין לי סיסמה להגדיר עבור המשתמש שורש שלי - Cristiano Mendonça
ב- MAC, brew install pv - score


הדרך הפשוטה ביותר היא לפתוח את קובץ מסד הנתונים לפני הייבוא. גם כאמור @Prof. מוריארטי אתה לא צריך להיות ציון הסיסמה בפקודה (תתבקש להזין את הסיסמה). פקודה זו נלקחה גיליון יהיה לפתוח ולייבא את מסד הנתונים בבת אחת:

gunzip < myfile.sql.gz | mysql -u root -p mydb

48
2017-11-22 15:51



כמו כן, mydb צריך להיווצר לפני הייבוא. זה לא יוצר את db בשבילך. - Siddhartha
מצאתי את הצנרת שלי gunzip על קובץ דחוס 10GB גרם ליבוא שלי להקפיא. לא בטוח אם זה בגלל אילוצי זיכרון או משהו אבל הייתי לטעות בצד עושה צעד אחד בכל פעם בעתיד. - Ryan Tuck
@ RyanTuck זה דוחף את הגבולות של סוג זה של תהליכים :) - icc97
@ Siddhartha זה תלוי בקובץ dump sql. לפעמים הם כוללים הצהרות מסד נתונים. - rooby
@ רובי זה הגיוני. - Siddhartha


אם אתה מקבל שגיאה מ zcat, שבו הודעת השגיאה מכילה את שם הקובץ עם סיומת נוספת .Z, ולאחר מכן נסה להשתמש gzcat במקום זאת, כמתואר ב https://stackoverflow.com/questions/296717/zcat-wont-unzip-files-properly


10
2017-07-08 13:59





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


3
2018-05-03 11:28



אתה רק צריך להאריך את הפקודה כך: pv mydump.sql.gz | gunzip | mysql -u root -p  your_database. התשובה המקובלת משתמשת בגישה זו. - bafromca


ב- MacOS, השתמשתי בזה:

zcat < [Database].sql.gz | mysql -u root -p [Database Name in MySQL]

הזן את הסיסמה שלך, ו voila!


3
2017-11-28 07:41





ל bzip2 קבצים דחוסים (.sql.bz2), השתמש:

bzcat <file> | mysql -u <user> -p <database>

או

pv <file> | bunzip2 | mysql -u <user> -p <database>

כדי לראות את סרגל ההתקדמות.


1
2017-08-01 15:25





אתה יכול להשתמש -c, --stdout, --to-stdout אופציה של gunzip פקודה

לדוגמה:

gunzip -c file.sql.gz | mysql -u root -p database

0
2017-09-16 06:03