استيراد قواعد بيانات Mysql. كيفية استيراد قاعدة بيانات MySQL كبيرة وتجاوز قيود phpMyAdmin كيفية استعادة قاعدة بيانات MySQL من تفريغ عبر وحدة التحكم

25.12.2023 الصور والفيديو

تحيات أصدقاء! 🙂

قررت اليوم مواصلة المحادثة حول العمل مع MySQL في وحدة التحكم والانتباه إلى إجراء تصدير قاعدة بيانات MySQL.

سأتحدث في هذه المقالة عن كيفية تفريغ قاعدة بيانات MySQL، بالإضافة إلى تحميل البيانات من MySQL إلى ملف Excel وتنسيق csv.

سننظر في خيارات مختلفة لاسترداد المعلومات من: إنشاء تفريغ لقاعدة بيانات واحدة أو عدة قواعد بيانات، وتصدير البيانات من جداول فردية ونتائج عشوائية يختارطلبات.

سنتحدث أيضًا عن كيفية إخراج البيانات من قاعدة بيانات MySQL في وحدة تحكم الخادم وسطر أوامر MySQL.

لن أتحدث في هذه المقالة عن كيفية تصدير البيانات باستخدام phpMyAdmin والأدوات المرئية الأخرى.

أولا، لأن هناك بالفعل ما يكفي من المواد حول هذا الموضوع على شبكة الإنترنت. علاوة على ذلك، فهي مادة عالية الجودة، ولا أرغب في نسخها ولصقها.

وثانيًا، قمت بنفسي بمراجعة عملية إخراج المعلومات من قاعدة بيانات MySQL إلى ملف SQL بإيجاز في إحدى مقالاتي التي تحدثت عنها.

لذا، إذا لم تكن مطورًا محترفًا أو مسؤول نظام قد تستفيد من المعلومات حول العمل مع وحدة التحكم، ولم تأت إلا للحصول على إرشادات حول كيفية تصدير قاعدة البيانات إلى phpMyAdmin، فيمكنك قصر نفسك على قراءة المعلومات الموجودة على الرابط أعلاه .

أريدك أن تفهمني بشكل صحيح: لا أريد الإساءة إليك بأي شكل من الأشكال، ولكن أريدك فقط أن تقضي وقتك مع أقصى فائدة لعملك وأن تحصل على ما كنت تبحث عنه.

بهذا نختتم الجزء التمهيدي وننتقل إلى مراجعة أوامر وحدة التحكم لإنشاء تفريغ قاعدة بيانات MySQL، والتي قررت فرزها حسب كمية البيانات المحفوظة: بدءًا من تصدير قاعدة البيانات بأكملها، وانتهاءً بالجداول الفردية ونتائج استفسارات تعسفية.

إنشاء تفريغ قاعدة بيانات MySQL عبر وحدة التحكم

أود أن أقدم توضيحًا صغيرًا في البداية.

تفريغ قاعدة البياناتهو ملف يحتوي على مجموعة من أوامر SQL، والتي، عند تشغيلها، تسمح لك بإنشاء قواعد بيانات وجداول، بالإضافة إلى ملؤها بالمعلومات. يعد التفريغ ضروريًا لأولئك الذين يرغبون في تنزيل قاعدة بيانات MySQL لنسخها إلى خادم آخر أو داخل خادم موجود.

أيضًا، إذا لم يكن أي شخص على علم، فإن النسخة الاحتياطية لقاعدة بيانات MySQL هي في الأساس عبارة عن تفريغ تم إجراؤه في فترة زمنية معينة، مما يسمح لك باستعادة بنية قاعدة البيانات وبياناتها إذا لزم الأمر.

تصدير البيانات- هذا مجرد استخراج المعلومات من الجداول في شكل نص لمزيد من العمل مع محرري النصوص أو الرسوم.

لذلك، ستكون أوامر هذه الإجراءات مختلفة قليلاً.

لإنشاء تفريغ قاعدة بيانات، يحتوي MySQL على أداة مساعدة مضمنة تسمى com.mysqldump، والتي يجب استخدامها خارج سطر أوامر MySQL في وحدة تحكم الخادم أو أي غلاف آخر.

لذلك، بالنسبة للخيار الأبسط والأكثر شيوعا - تصدير البيانات من قاعدة بيانات معينة في وحدة تحكم MySQL لنقلها إلى خادم آخر أو النسخ الداخلي، تحتاج إلى تشغيل الأمر التالي:

Mysqldump -u اسم المستخدم -p اسم_قاعدة البيانات > path_and_dump_file_name

يمكن لهذه الأداة المساعدة إنشاء عمليات تفريغ قاعدة بيانات MySQL فقط في شكل ملفات بأوامر SQL، لذا بغض النظر عن الامتداد الذي تختاره لملفك، فإن محتوياته ستكون هي نفسها في أي حال. ولا تنس التحقق من أذونات الكتابة للدليل الذي سيكون موجودًا فيه قبل تصدير المعلومات من MySQL حتى يمكن إنشاء الملف.

إذا كنت بحاجة فجأة إلى تفريغ جميع قواعد البيانات الموجودة على الخادم، فاستخدم خيار الأمر التالي:

Mysqldump -u اسم المستخدم -p --جميع قواعد البيانات > path_and_dump_file_name

لتفريغ عدد قليل فقط من قواعد البيانات المحددة، ستحتاج إلى استدعاء mysqldump باستخدام المعلمات التالية:

Mysqldump -u اسم المستخدم -p --قواعد بيانات قاعدة البيانات_name1, قاعدة البيانات_اسم2, ... > path_and_dumpfile_name

نتيجة لذلك، في كل حالة، ستتلقى تفريغ قاعدة بيانات MySQL يحتوي على أوامر لإنشاء بنية الجداول المضمنة (الحقول، وأنواعها، والفهارس، والمفاتيح، وما إلى ذلك)، بالإضافة إلى عمليات ملئها بالبيانات.

هذا الخيار مناسب فقط لاستعادة ونسخ قواعد البيانات بأكملها.

سنتحدث أكثر عن كيفية عمل نسخ احتياطية لبعض جداول MySQL والحصول على بياناتها في شكل قابل للقراءة.

تفريغ جدول MySQL وتصدير البيانات

لإنشاء ملف تفريغ لبعض جداول قاعدة بيانات MySQL، سنحتاج إلى نفس الأداة المساعدة com.mysqldump، يتم استدعاؤه باستخدام المعلمات التالية:

Mysqldump -u اسم المستخدم -p اسم قاعدة البيانات table_name1, table_name2, ... > path_and_dumpfile_name

عند استدعاء mysqldump، يمكنك تحديد الجداول المطلوبة كقيمة المعلمة --الجداولعند استخدام المعلمة --قواعد بياناتسيتم تجاهل:

Mysqldump -u اسم المستخدم -p --قواعد بيانات قاعدة بيانات_اسم1, قاعدة بيانات_اسم2 --جداول جدول_اسم1, جدول_اسم2, ... > path_and_dumpfile_name

سيعرض المثال أعلاه الخطأ التالي:

Mysqldump: حصلت على خطأ: 1049: قاعدة بيانات غير معروفة "database_name1،" عند تحديد قاعدة البيانات

كما ترون، سيتم استخدام أحدث قاعدة بيانات من القائمة فقط. من حيث المبدأ، هذا السلوك منطقي تماما، لأنه قد لا تظهر الجداول المحددة في كافة قواعد البيانات.

حسنًا، لقد تلقينا تفريغًا لجداول قاعدة بيانات MySQL. يمكن استخدامه لاستعادتها أو نسخها مع البنية.

ولكن ماذا لو كنت تحتاج فقط إلى الحصول على المعلومات المخزنة فيها، ويفضل أن تكون في شكل قابل للقراءة حتى تتمكن من إرسالها إلى المدير وعرضها في محرر نص أو جداول بيانات عادي؟ لدى MySQL أدوات لهذا أيضًا.

سيساعدنا خيار الاتصال بالأداة المساعدة في تحقيق خططنا mysqlمن وحدة التحكم مع معلمات معينة:

Mysql -u اسم المستخدم -p قاعدة البيانات_اسم -e "SELECT * FROM table_name"

سيسمح لنا هذا الأمر بتنفيذ استعلام إلى قاعدة البيانات المطلوبة وإخراج النتيجة إلى وحدة التحكم دون الانتقال إلى سطر أوامر MySQL.

حسنًا، لكي لا يتم إخراج البيانات إلى وحدة التحكم، ولكن لكتابتها في ملف، تحتاج إلى استكمال الأمر على النحو التالي:

Mysql -u اسم المستخدم -p -e "SELECT * FROM tablename" > path_and_filename

بفضل هذه الإنشاءات، لا يمكننا فقط الحصول على البيانات المخزنة في جميع حقول الجدول، ولكن أيضًا في حقول محددة. للقيام بذلك، ما عليك سوى استبدال رمز أحرف البدل (*) بالأحرف المطلوبة، مفصولة بفواصل.

ونتيجة لذلك، سيكون الإخراج ملف نصي عادي يحتوي على أسماء الحقول في شكل رأس ومعلومات عنها لجميع السجلات. يمكن فتحه في محرر نصوص عادي، بغض النظر عن الدقة التي تقدمها له عند إنشائه.

إذا كنت ترغب في تصدير البيانات من قاعدة بيانات MySQL بتنسيق xls أو csv بحيث يتم عرض الملف الناتج بشكل صحيح في برامج تحرير جداول البيانات، فسنخبرك بكيفية القيام بذلك بعد قليل :)

إنشاء نسخ احتياطية وإخراج البيانات من قاعدة بيانات MySQL باستخدام الاستعلامات

تحدثنا عن كيفية تفريغ قاعدة بيانات MySQL - واحدة أو أكثر، بالإضافة إلى الجداول الفردية. لكن في بعض الأحيان توجد حالات تحتاج فيها إلى تصدير مجموعة بيانات لا تقتصر على جدول واحد. أو تحتاج إلى تحديد بعض البيانات فقط من الجدول.

غالبًا ما يواجه مطورو مشاريع الشركات هذا الأمر عندما يطلب منهم المديرون تقديم جميع أنواع البيانات الإحصائية. أو عندما تحتاج إلى عمل نسخة احتياطية لجزء معين من الجدول لاستعادته بسرعة.

للنسخ الاحتياطي سنحتاج إلى نفس الأداة المساعدة com.mysqldump، والتي يجب أن يتم استدعاؤها على النحو التالي:

Mysqldump -u user_name -p قاعدة البيانات_اسم table_name --حيث "البحث"> path_and_dump_file_name

نتيجة لذلك، سنتلقى ملفًا يحتوي على أوامر SQL لإنشاء جدول ببنيته بالكامل، والذي سيتم ملؤه بعد الإنشاء بالمعلومات المحددة باستخدام استعلام بحث.

إذا أردنا فقط الحصول على البيانات المخزنة في جدول واحد أو أكثر، فسنحتاج إلى تعديل الأمر المستخدم في الحالة السابقة عند استرجاع كافة البيانات الموجودة في الجدول، فقط مع بعض التوضيحات:

Mysql -u user_name -p -e "SELECT * FROM table_name حيث البحث"> path_and_file_name

كما تفهم، بالإضافة إلى التوضيحات المختلفة المحددة في الطلب باستخدام التوجيه أين، يمكنك استخدام بنيات SQL الأخرى: ينضم, اتحادإلخ.

يمكنك جمع أي نوع من الإحصائيات :)

يمكن أيضًا تنفيذ نفس الإجراء عند العمل على سطر أوامر MySQL باستخدام الأمر التالي:

حدد * من قاعدة بيانات_الجدول حيث يتم البحث في الملف الخارجي "path_and_file_name"؛

تم تصميم هذا الأمر خصيصًا لإنشاء ملفات ذات نتائج أخذ العينات. علاوة على ذلك، لا يمكن تصدير النتائج إلى ملفات فحسب، بل يمكن أيضًا كتابتها إلى متغيرات، ويمكن تنسيق بيانات الإخراج بطرق مختلفة.

إذا كان ما ورد أعلاه هو حالتك، فيمكنك العثور على قائمة كاملة بالمعلمات والخيارات لاستدعاء هذا الأمر هنا - https://dev.mysql.com/doc/refman/5.7/en/select-into.html

في ختام رحلتي القصيرة إلى mysqldump، أود أن أقدم خيارًا لاستدعاء أمر بقائمة من المعلمات لإنشاء تفريغ محسّن لقاعدة بيانات MySQL والجداول، واستعادة قاعدة البيانات والجداول الفردية التي ستستغرق وقتًا أقل منها مع مكالمة عادية:

mysqldump -u user_name -h host_or_IP_MySQL_server -p --no-autocommit --opt data_name > path_and_dump_file_name;

من أجل التجربة، استخدمت هذا الخيار لتفريغ قاعدة بيانات MySQL بحجم 143 ميجابايت. استغرقت عملية الاستعادة اللاحقة 59 ثانية مقارنة بدقيقة واحدة و3 ثوانٍ عند استعادة قاعدة البيانات من ملف تفريغ تم إجراؤه عن طريق استدعاء mysqldump بدون معلمات خاصة.

أوافق على أن هذا شيء صغير. ولكن هذا فقط في حالة كمية معينة من البيانات. إذا استخدمت هذه التقنية عند إنشاء ملف تفريغ أكبر من 1 جيجابايت، فسيكون الفرق أكثر أهمية.

إذا واجهت مثل هذا الموقف، فلا تنس أولاً أرشفة تفريغ قاعدة بيانات MySQL. الأفضل هو tar.gz. ثم سيستغرق التعافي وقتًا أقل.

تصدير البيانات من MySQL إلى ملفات Excel وcsv

لم يكن من قبيل الصدفة أن قمت بدمج المعلومات حول إخراج المعلومات من MySQL إلى هذين التنسيقين في كتلة واحدة، لأن... إنها متشابهة جدًا، ويتم استخدامها بنفس الطريقة تقريبًا (لتنظيم المعلومات في شكل جداول) وسيتم استدعاء نفس أوامر التصدير.

كما تعلم، فإن الاختلاف الوحيد المهم بين هذه التنسيقات هو أن امتدادات xls وxlsx تحتوي على ملفات تم إنشاؤها في Microsoft Office Excel، والتي تعمل فقط ضمن نظام Windows، في حين أن ملفات CSV أكثر عالمية ويمكن إجراء العمليات معها في العديد من المحررين.

هذا لا يعني أن ملف xls لن يفتح في أي مكان باستثناء Microsoft Office Excel. نفس OpenOffice يؤكد العكس.

ولكن لكي يكون هذا ممكنًا، يجب أن يكون هذا الدعم موجودًا في منتج البرنامج. تكون ملفات csv قابلة للقراءة حتى في محرر النصوص العادي مثل Notepad، ولكن هذا النموذج لن يكون قابلاً للقراءة بالكامل.

اسمحوا لي أن أبدأ بحقيقة أنه يمكنك فقط تصدير نتائج استعلامات SQL إلى xls أو csv، والتي تعلمنا العمل معها سابقًا، لأن سيكون من المستحيل إخراج قاعدة البيانات بأكملها في ملف واحد في عملية واحدة.

أولاً، هذا ليس الأمثل، لأن... من غير المرجح أن يتم فتح مثل هذا الملف إذا كان هناك حجم كبير من المعلومات المخزنة في قاعدة البيانات. وثانيًا، ليس من الواضح كيفية تقسيم المعلومات الموجودة داخل الملف إلى جداول وحقول.

لا، بالطبع، من الممكن القيام بذلك، ولكن من غير المرجح أن يتم ذلك بأمر واحد وبشكل عام، من غير المرجح أن يقوم أي شخص بذلك في وحدة التحكم. أعتقد أنك ستحتاج إلى برنامج خاص أو على الأقل برنامج نصي لهذه الأغراض.

إذا كنت تعرف فجأة كيف يمكنك تصدير المعلومات من قاعدة بيانات MySQL بأكملها إلى ملف واحد أو عدة ملفات XLS في وحدة التحكم مرة واحدة، فاكتب عنها في التعليقات. أعتقد أن القراءة عن هذا ستكون مفيدة للكثيرين.

لذلك، إذا كنا نتحدث عن كيفية تصدير البيانات من MySQL إلى XLS وCSV، فيمكن القيام بذلك مباشرة في وحدة تحكم الخادم من خلال الأداة المساعدة mysqlأو في العمل الذي عرفتك به في مقالتي السابقة.

لنبدأ بالترتيب.

يمكنك تصدير البيانات من قاعدة بيانات MySQL إلى تنسيقات csv وxls مباشرةً في وحدة تحكم الخادم باستخدام الأوامر التالية.

على لينكسالأنظمة:

Mysql -u اسم المستخدم -d قاعدة بيانات_name -p -e "SELECT * FROM قاعدة بيانات_جدول؛" | sed "s/"/\"/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > path_and_file_name. ملف CSV

من حيث المبدأ، إذا لزم الأمر، يمكنك استخدام هذا الأمر لتصدير بيانات MySQL إلى ملف Excel. لكن بصراحة، لم أتعامل مع هذا الأمر بشكل عملي وليس لدي أي فكرة عما سيحدث في النهاية، لأن... أنا أعمل حاليا على نظام التشغيل Windows. إذا كنت تستخدم هذا الأمر في نظام التشغيل Linux، فيرجى الكتابة في التعليقات حول نتائج عملك. أعتقد أن المعلومات ستكون ذات فائدة للجميع.

على شبابيك:

لسوء الحظ، لن ينجح تصدير البيانات من جداول MySQL إلى ملف CSV باستخدام الأمر أعلاه في هذه الحالة، وذلك لأن Windows، على عكس Linux، لا يحتوي على أمر وحدة تحكم مدمج للعمل مع المواضيع، مثل sed في Linux.

وبطبيعة الحال، يمكنك تثبيته، ولكن هناك الكثير من المتاعب. بدلا من ذلك، يمكنك استخدام CygWin- محاكي وحدة تحكم Linux لأنظمة Windows.

من الجيد أن تكون قد قمت بتثبيته بالفعل. وإلا فإن تصدير البيانات من قاعدة بيانات MySQL باستخدام الطريقة المختارة سيجلب لنا الكثير من المتاعب.

لكن استخراج المعلومات إلى ملف xls أمر سهل بقدر 5 كوبيل :) ومن السهل جدًا تشغيله بالطريقة التالية، والتي جربتها شخصيًا:

Mysql -u اسم المستخدم -d قاعدة بيانات_name -p -e "SELECT * FROM قاعدة بيانات_جدول؛" > path_and_file_name.xls

تم فتح هذا الملف في Microsoft Office Excel دون أي مشاكل على الإطلاق. الشيء الوحيد هو أنه عند فتحه، تم عرض رسالة على الشاشة تحذر من أن التنسيق الفعلي للملف الذي يتم فتحه يختلف عن امتداده المحدد.

ولكن عند تأكيد الإجراء، تم فتح المستند دون صعوبة - تم تقسيم جميع المعلومات إلى خلايا بالشكل الذي تم تخزينها به في الجدول نفسه.

لا أعلم، ربما إذا قمت بتنفيذ أي إجراءات محددة في Microsoft Office Excel، فستظهر المشاكل في المستقبل، ولم أتعمق في الأمر. عندما نظرت إلى البيانات بشكل طبيعي، على الأقل، لم أر أي شيء غير عادي.

إذا واجهت أي مشاكل أثناء استخدام ملف xls المصدر من MySQL سواء في هذا البرنامج أو في غيره، فيرجى إبلاغي بذلك في التعليقات.

باستخدام الطريقة الموضحة أعلاه، يمكنك تصدير محتويات قاعدة بيانات MySQL إلى ملف CSV، من حيث المبدأ. ولكن بعد ذلك سيتم كتابة البيانات من حقول مختلفة في الجدول بشكل جماعي، دون محددات، والتي قد لا يتم عرضها بشكل جيد في برامج مختلفة للعمل مع الجداول، والتي تعمل عادة مع ملفات CSV.

بالمناسبة، OpenOffice لا يهتم :) لقد قام تلقائيًا بتحديد المعلومات التي تم الحصول عليها بالطريقة التي قمنا بتصدير محتويات قاعدة بيانات MySQL إلى xls. لا أعرف كيف يفعل ذلك، لكن أنصح باستخدامه :)

حسنا، نفس Microsoft Office Excel عرض جميع المعلومات المقابلة لسجل واحد في الجدول، وكتابتها في خلية واحدة دون أي محددات. أعتقد أن محرري الجدول الآخرين سيفعلون الشيء نفسه.

ولذلك، عند تصدير قاعدة بيانات MySQL إلى ملفات CSV، فإنك تحتاج إلى القيام بذلك عن طريق فصل المعلومات بأحرف خاصة يفهمها المحررون.

ثم اقتربت تدريجيًا من الطريقة الثانية لتصدير بيانات MySQL إلى ملفين csv وxls، وهي استخدام سطر أوامر MySQL.

لذا، من أجل تصدير بيانات MySQL إلى ملف CSV بهذه الطريقة، نحتاج إلى الأمر التالي:

SELECT * من قاعدة بيانات_الجدول إلى الحقول الخارجية "path_and_file_name.csv" التي تم إنهاؤها بواسطة "،" المغلقة بواسطة """ الخطوط المنتهية بواسطة "\n"؛

نتيجة لتنفيذه، ستتلقى ملف CSV في المسار الذي حددته عند الاتصال، والذي سيتم فتحه بشكل صحيح في معظم برامج تحرير جداول البيانات الحديثة. فقط في حالة، أذكرك أنك تحتاج إلى تشغيل هذا الأمر فقط بعد الاتصال بقاعدة بيانات MySQL.

يعد هذا الأمر أيضًا رائعًا لتصدير بيانات MySQL إلى ملف xls للعرض الصحيح في Microsoft Office Excel. فقط في هذه الحالة لا نحتاج إلى فواصل، لأن سوف تتداخل مع تقسيم المعلومات إلى خلايا:

حدد * من قاعدة بيانات_الجدول إلى الملف الخارجي "path_and_file_name.xls"؛

ومع ذلك، في الممارسة العملية، ليس كل شيء بسيطا كما وصفته. أثناء تشغيل الأمر، قد تواجه الخطأ التالي في وحدة التحكم والذي يمنع اكتمال التصدير:

الخطأ 1290 (HY000): خادم MySQL يعمل باستخدام خيار --secure-file-priv لذا لا يمكنه تنفيذ هذا البيان

يحدث ذلك بسبب حقيقة أن خادم MySQL الخاص بك قد بدأ بالخيار --secure-file-priv. شخصيا، واجهت هذه المشكلة بسبب حقيقة أنني أستخدم توزيع MySQL المضمن في مجموعة WAMP OpenServer للعمل في وحدة التحكم، والتي بدورها تقوم بتشغيل خادم MySQL بهذه الطريقة.

هناك طريقتان لحل المشكلة:

  • تغيير معلمات بدء تشغيل خادم MySQL
  • قم بتغيير المسار إلى ملف تصدير MySQL النهائي

الطريقة الأولى بدت معقدة للغاية بالنسبة لي، لأن... سيتعين علي الخوض في تكوين OpenServer، الذي لم أكتبه مع كل الظروف التي تلت ذلك 🙂 لذلك قررت أن أسلك المسار الثاني. إذا واجهت مشكلة مماثلة، كرر بعدي.

تحتاج أولاً إلى الانتقال إلى سطر أوامر MySQL وتشغيل أحد الأوامر التالية:

إظهار المتغيرات مثل "secure_file_priv"؛ حدد @@GLOBAL.secure_file_priv;

ستكون نتيجة تنفيذ كليهما هي قيمة المتغير العمومي MySQL Secure_file_priv، والذي يحتوي على المسار إلى الدليل الذي يمكن من خلاله تنفيذ عمليات تصدير واستيراد بيانات MySQL (في المستقبل، رابط لمقالة حول استيراد البيانات).

أولئك. عند استخدام الأوامر تحميل البياناتو اختر... في الملف الخارجيلا يمكن العثور على الملفات المصدرة والمستوردة إلا داخل هذا الدليل.

في حالتي، تم تعيين هذا المتغير بشكل عام على باطل، لأن كما قلت سابقًا، أستخدم أدوات MySQL المساعدة من التوزيعة المضمنة في OpenServer للعمل في وحدة التحكم. تشير هذه القيمة إلى أن عمليات تصدير واستيراد بيانات MySQL باستخدام الأوامر المحددة قد تم إغلاقها بالكامل.

كما اتضح لاحقًا، هذا موقف شائع عند استخدام خوادم WAMP وMAMP المعبأة.

لسوء الحظ، في حالتي لم يكن من الممكن استخدام الطرق المعتادة لتغيير قيم متغيرات MySQL العالمية:

تعيين اسم متغير = القيمة؛

ونتيجة لذلك، رأيت الخطأ التالي فقط في وحدة التحكم:

الخطأ 1238 (HY000) في السطر 1: المتغير "secure_file_priv" هو متغير للقراءة فقط.

ونتيجة لذلك، لتغيير قيمة المتغير Secure_file_privوفتح عمليات التصدير والاستيراد، كنت بحاجة للذهاب إلى ملف تكوين MySQL mysql.ini، الموجود في الدليل الجذر لتوزيع MySQL، أو يمكن الوصول إليه بطريقة أخرى إذا تم تضمين MySQL مع WAMP/LAMP/ بناء خادم MAMP.

بالمناسبة، إذا كنت تريد تغيير المسار إلى دليل التخزين المؤقت لتبادل الملفات، فستحتاج إلى القيام بنفس الشيء.

في حالتي، هذا المتغير موجود بالفعل في التكوين، فقط في نموذج التعليق:

Secure-file-priv = "%dprogdir%\\userdata\\temp"

إذا لم يكن لديك، فاكتبه من الصفر في القسم (على الأقل بالنسبة لي كان موجودا هناك).

لقد قمت بإلغاء التعليق عليه وقررت استخدامه بالشكل الذي كتب به. أولئك. عند تصدير البيانات من MySQL واستيرادها مرة أخرى، سيتم الآن تخزين ملفاتي في الدليل ج:\فتح الخادم\بيانات المستخدم\درجة الحرارة\.

بعد تغيير التكوين (أي واحد، بالمناسبة)، لا تنس إعادة تشغيل الخادم الخاص بك أو خدمة منفصلة قمت بتحرير إعداداتها، إن أمكن، حتى تدخل التغييرات حيز التنفيذ!

للتأكد، بعد إعادة تشغيل خادم MySQL، قم بعرض المتغير مرة أخرى Secure_file_privوانسخ قيمته إلى الحافظة.

والآن نحتاج إلى استدعاء الأمر كما في البداية، فقط قبل اسم الملف الذي سيتم حفظ المعلومات من قاعدة بيانات MySQL فيه، نكتب المسار المخزن في المتغير الذي نغيره بالشكل التالي:

حدد * من قاعدة بيانات_الجدول إلى الملف الخارجي "secure_file_priv_value\file_name.csv";

بعد ذلك، نجح تصدير البيانات من MySQL في حالتي.

نقطة مهمة! إذا كنت تعمل مع MySQL ضمن نظام Windows، فلا تنس تغيير "\" إلى "/" عند تحديد المسار إلى الملف، وإلا فسيكون الخطأ --secure-file-privسوف تستمر في الظهور.

وبهذا نختتم المقال حول كيفية تفريغ قاعدة بيانات MySQL وجداولها، بالإضافة إلى إخراج البيانات من جداول MySQL إلى تنسيقات مختلفة. اكتب تعليقاتك في التعليقات وشارك مع الجميع خيارات البرنامج النصي التي تستخدمها غالبًا في الممارسة العملية.

إذا أعجبك المقال، يمكنك شكر المؤلف من خلال إعادة نشر المقال على شبكات التواصل الاجتماعي أو ماليًا باستخدام النموذج أدناه حتى تتمكن من دفع تكاليف الاستضافة الأساسية.

حظا سعيدا للجميع ونراكم مرة أخرى! 🙂

ملاحظة.: إذا كنت بحاجة إلى موقع ويب أو كنت بحاجة إلى إجراء تغييرات على موقع موجود، ولكن ليس هناك وقت أو رغبة في ذلك، فيمكنني تقديم خدماتي.

أكثر من 5 سنوات من الخبرةتطوير المواقع المهنية. يعمل مع بي أتش بي

يغطي هذا الدرس قضايا مهمة مثل تصدير قاعدة البياناتو استيراد قاعدة البياناتماي إس كيو إل. قد تتساءل، لماذا تصدير قواعد البيانات على الإطلاق؟ كقاعدة عامة، يتم ذلك لغرض النسخ الاحتياطي لقاعدة البيانات، بحيث تكون دائما في متناول اليد، كما يقولون، فقط في حالة. بعد كل شيء، لا أحد في مأمن من ظروف القوة القاهرة، مثل استضافة الحوادث، والتي يمكن أن تؤدي إلى فقدان البيانات. مثال آخر يمكن أن يكون هجومًا من قبل المتسللين الذين يريدون الإضرار بموقعك. في الواقع، يمكن أن يكون هناك العديد من هذه الأمثلة.

يتم استخدام استيراد قاعدة البيانات عندما تحتاج إلى "إعادة تحميل" قاعدة بيانات إلى استضافتك الحالية، أو عند الانتقال إلى استضافة أخرى. وغالبًا ما يتم ذلك عمليًا بواسطة مشرفي المواقع.

لوحدنا تصدير قاعدة البياناتو استيراد قاعدة البيانات- المهام بسيطة. يجدر تنفيذ هذه الإجراءات مرة واحدة لتتذكر الخوارزمية الخاصة بتنفيذها لبقية حياتك. دعونا نلقي نظرة على كيفية القيام بكل هذا بالأمثلة.

لتصدير قاعدة بيانات، يجب عليك الانتقال إلى لوحة إدارة الاستضافة، ثم الانتقال إلى قسم قاعدة البيانات - قواعد بيانات MySQL.

حدد قاعدة البيانات التي نريد تصديرها (انتقل إلى phpMyAdmin). في هذا المثال، تسمى قاعدة البيانات "cl209038".

1) في الحالة الأولى، حدد "سريع"، واترك التنسيق كـ SQL واضغط على الزر "موافق". ونتيجة لذلك، سيتم تنزيل نسخة من قاعدة البيانات على جهاز الكمبيوتر الخاص بنا.

2) في الحالة الثانية، حدد "عادي". ستظهر صفحة تحتوي على إعدادات تصدير قاعدة البيانات. حدد كافة الجداول، ثم حدد مستوى التشفير والضغط، كما هو موضح أدناه. والباقي، كقاعدة عامة، لا يحتاج إلى تغيير. انقر فوق الزر "موافق" وسيتم تصدير قاعدة البيانات إلى جهاز الكمبيوتر الخاص بنا.

هذا كل شيء، كما ترون، تصدير قاعدة البيانات MySQL ليست مهمة صعبة.

لاستيراد قاعدة بيانات، تحتاج أيضًا إلى الانتقال إلى لوحة إدارة الاستضافة والانتقال إلى القسم الذي يحتوي على قواعد بيانات MySQL. هناك خياران هنا - إما أنك تحتاج إلى إنشاء قاعدة بيانات جديدة، أو التصدير إلى قاعدة بيانات موجودة.

سيكون إنشاء قاعدة بيانات مطلوبًا، على سبيل المثال، إذا كنا ننقل الموقع إلى استضافة أخرى. إذا كان لا يزال لدينا نفس الاستضافة وتم إنشاء قاعدة البيانات بالفعل، فيمكنك ببساطة تحديد قاعدة البيانات هذه و"إعادة تحميل" البيانات فيها. يمكنك بالطبع حذفه، ثم إنشاء واحد جديد (فارغ) والتحميل عليه.

1) قاعدة البيانات موجودة بالفعل. نختار قاعدة بيانات لاستيراد نسختنا من قاعدة البيانات إليها. ستظهر قائمة استيراد قاعدة البيانات.

حدد ملف نسخة قاعدة البيانات الذي تريد استيراده. إذا لزم الأمر، يمكنك تغيير ترميز قاعدة البيانات وتنسيقها. بعد ذلك، انقر فوق الزر "موافق". بعد الاستيراد، سيبلغنا النظام ما إذا كان كل شيء يسير بشكل صحيح أو ما إذا كانت هناك أية أخطاء قد حدثت أثناء العملية. في حالة حدوث أخطاء، يمكنك محاولة حذف قاعدة البيانات الموجودة على الاستضافة، ثم إنشاء قاعدة بيانات فارغة واستيراد قاعدة البيانات مرة أخرى.

2) إنشاء قاعدة بيانات جديدة. انتقل إلى لوحة إدارة الاستضافة وحدد القسم الذي يحتوي على قواعد بيانات MySQL. ندخل في إدارة قاعدة بيانات MySQL.

حدد اسم قاعدة البيانات وكلمة المرور المطلوبة لها. انقر فوق الزر "إنشاء". ونتيجة لذلك، يجب إنشاء قاعدة بيانات جديدة (فارغة) - وسيكون من الضروري استيراد نسخة محفوظة مسبقًا من قاعدة البيانات الخاصة بنا إليها.

هذا كل ما أردت أن أخبرك به عن تصدير واستيراد قواعد بيانات MySQL. إذا كان لديك أي صعوبات فيما يتعلق بهذه الأسئلة، فاكتب تعليقات على هذا الدرس.

يبلغ حجم قواعد البيانات (أو التي يتم اختصارها بـ DB) في معظم المواقع عدة عشرات من ميغابايت (ميجابايت). يعتمد الحجم الأولي لقاعدة البيانات في بداية المشاريع المختلفة على بنية الموقع نفسه (CMS)، ولكن بعد ذلك يزداد وزنها مع كل ظهور لسجل جديد.

قد تتضمن السجلات معلومات حول تسجيل المستخدم والتعليقات والرسائل الشخصية والمنتجات والأخبار وغيرها من البيانات المخزنة في قاعدة بيانات الموقع.

لقد أتيحت لي الفرصة للعمل مع العديد من المواقع التي تجاوز حجم قاعدة بياناتها 500 ميجابايت (ميجابايت)، وفي بعضها وصل إلى 2 جيجابايت (جيجابايت). نظرًا لصعوبة نقل قواعد البيانات بهذا الحجم باستخدام الطرق القياسية (بسبب قيود الاستضافة والمتصفح)، فسوف أشارككم العديد من أساليب العمل التي ستساعدكم على حل مثل هذه المشكلات (ترحيل قواعد البيانات الكبيرة).

تصدير (تنزيل) قواعد بيانات MySQL كبيرة عبر Sypex Dumper

لذا، دعونا نبدأ تفكيرنا في حل المشكلات المطروحة بخيار أسهل، وهو الحل الجاهز.

"Sypex Dumper" هو منتج برمجي مكتوب بلغة PHP يسمح لك بالعمل مع قواعد البيانات دون استخدام phpMyAdmin. تشمل مزايا Sypex Dumper ما يلي:

  1. متعدد اللغات (يدعم العديد من اللغات).
  2. هناك نسخة مجانية من البرنامج النصي (هذا يكفي لأغراضنا).
  3. سرعة عالية في إنجاز المهمة.
  4. العمل مع قواعد البيانات الكبيرة.
  5. واجهة مريحة وبديهية.
  6. والعديد من "الرقائق" الأخرى المثيرة للاهتمام.

وهذا ما سنستخدمه لتنزيل (نقل) قواعد البيانات الكبيرة.

لتصدير (استلام، تنزيل) قاعدة بيانات موقع معين خاص بك لاستخدامها مرة أخرى، عليك القيام بما يلي.

1. مجانا من موقعنا.

2. com.sxdبطريقة مريحة لك.

3. بعد ذلك، انتقل إلى العنوان (أين your_site.ru ليأتي».

4. في الصفحة التي تفتح (في حالة نجاح التفويض)، انقر مرة واحدة على القسم " يصدّر» في القائمة العلوية. إذا كانت هناك عدة قواعد بيانات متاحة للمستخدم، فاختر القاعدة التي سنقوم بتصديرها (تنزيلها) من القائمة المنسدلة. يمكنك ترك باقي الإعدادات دون تغيير والنقر على " ينفذ».


أريد أن أشير، حيث لا يمكنك تصدير قاعدة البيانات بأكملها، ولكن فقط بعض جداولها حسب الحاجة.

5. بعد انتهاء عملية حفظ قاعدة البيانات (يمكنك فهم ذلك من خلال شريط التقدم)، يمكنك تنزيل قاعدة البيانات التي تحتاجها من خلال النقر على الزر المناسب.


بالإضافة إلى ذلك، سيتم تخزين كافة قواعد البيانات المصدرة على موقع الويب الخاص بك على طول الطريق /sxd/النسخ الاحتياطي/. إذا فشل حفظ قاعدة البيانات، فتحقق من المجلد دعمأذونات الكتابة هي 777.

هذا يكمل تصدير (تنزيل) قاعدة البيانات.

استيراد (تنزيل) قواعد بيانات MySQL الكبيرة عبر Sypex Dumper

لقد شرحنا لك أعلاه كيفية الحصول على قاعدة البيانات اللازمة، والآن تحتاج إلى نقلها (استيرادها) إلى مشروع آخر، وللقيام بذلك نقوم بما يلي؛

1. مجانا من موقعنا.

2. قم بفك ضغط الأرشيف وتحميل المجلد إلى موقع الويب com.sxdبطريقة مريحة لك.

3. إلى المجلد /sxd/النسخ الاحتياطي/تحميل قاعدة البيانات المستلمة (التي تم تنزيلها) مسبقًا.

4. انتقل بعد ذلك إلى العنوان http://your_site.ru/sxd/index.php(أين your_site.ru– نطاق موقع الويب الخاص بك)، وبعد ذلك سيتم فتح نموذج إدخال البيانات أمامك. تشير فيه إلى بيانات المستخدم الذي لديه حقوق إدارة قاعدة البيانات التي تحتاجها وانقر فوق " ليأتي».

5. في الصفحة التي تفتح (في حالة نجاح التفويض)، انقر مرة واحدة على القسم " يستورد» في القائمة العلوية. إذا كانت هناك عدة قواعد بيانات متاحة للمستخدم، فحدد القاعدة التي سنقوم باستيراد (تحميل) البيانات إليها من القائمة المنسدلة. يمكنك ترك الإعدادات المتبقية دون تغيير والنقر على " ينفذ».


أريد أن أشيرأنه لا يمكنك استيراد قاعدة البيانات بأكملها، ولكن فقط بعض جداولها حسب الحاجة.

6. بعد اكتمال عملية استيراد (تحميل) قاعدة البيانات (يمكنك فهم ذلك من خلال شريط التقدم)، يمكن اعتبار المهمة مكتملة.


تصدير (تنزيل) قواعد بيانات MySQL كبيرة عبر محطة SSH

SSH هو بروتوكول شبكة يسمح لك بإدارة النظام أو الخادم عن بعد (عبر أوامر خاصة). يوجد في نظام التشغيل Windows العديد من البرامج للعمل مع هذا البروتوكول وأشهرها "PuTTY".

في بعض مواقع الاستضافة، على سبيل المثال، توجد محطة طرفية مدمجة في لوحة التحكم. دعونا لا نذهب بعيدًا ونفكر في المشكلة الموضحة في العنوان باستخدام مثاله. لا تساوي شيئاأنه يمكن تنفيذ العمليات الموضحة أدناه في عميل SSH منفصل.

1. إطلاق المحطة. تبدو هكذا:


2. إذا قمت بالاتصال بالخادم من خلال برنامج تابع لجهة خارجية، فقم بتسجيل الدخول إليه عن طريق إدخال البيانات المناسبة (يمكنك الحصول عليها في لوحة تحكم الاستضافة الخاصة بك أو من موفر الاستضافة الخاص بك).

ثانية- هذا:

Mysqldump -u اسم المستخدم -p قاعدة البيانات> Backup.sql

مباشرة التصدير نفسه، حيث:

اسم المستخدم- تسجيل دخول المستخدم الذي لديه حق الوصول إلى قاعدة البيانات.

قاعدة البيانات- اسم قاعدة البيانات التي نريد تصديرها.

Backup.sql– اسم الملف الذي سيتم حفظ قاعدة البيانات فيه والمسار المتعلق بـ . بهذا التصميم، سيتم حفظ قاعدة البيانات في جذر الاستضافة.

4. في الخطوة الثالثةيدخل"على لوحة المفاتيح. ملحوظة

بمجرد أن يصبح الخادم جاهزًا لقبول الأوامر عبر SSH مرة أخرى، فهذا يعني أن تصدير قاعدة البيانات قد اكتمل ويمكنك تنزيله عبر FTP أو من خلال مدير ملفات الاستضافة.

لا يتم بث عملية التصدير (والاستيراد) في SSH، وإذا كانت قاعدة البيانات الخاصة بك كبيرة جدًا، فكن صبورًا، حيث قد تتلقى ردًا من الخادم بعد أكثر من 20 دقيقة.

استيراد (تنزيل) قواعد بيانات MySQL الكبيرة عبر محطة SSH

لقد اكتشفنا بالفعل ما هو SSH أعلاه، والآن دعونا نبدأ في النظر في كيفية استيراد قاعدة بيانات تم تنزيلها مسبقًا إلى مشروع آخر.

1. إلى جذر الخاص بكالاستضافة، قم بتنزيل قاعدة البيانات التي تم تنزيلها مسبقًا بطريقة مناسبة لك.

2. اتصل بالاستضافة/الخادم الخاص بك عبر SSH.

لذلك نحن بالتأكيد نذهب إلى جذر الاستضافة، و ثانية- هذا:

وهكذا نحصل على قائمة كاملة بالملفات والأدلة الخاصة بالدليل الحالي. دعونا نتأكد من أن قاعدة البيانات التي تم تنزيلها مسبقًا من بينها.

4. إذا كان كل شيء على ما يرام وكانت القاعدة في مكانها، فأدخل الأمر النهائي:

Mysql -u اسم المستخدم -p قاعدة البيانات< backup.sql

اسم المستخدم- تسجيل دخول المستخدم الذي لديه حق الوصول إلى قاعدة البيانات.

قاعدة البيانات– اسم قاعدة البيانات التي سنقوم باستيراد البيانات إليها.

Backup.sql- اسم الملف الذي سيتم تنزيله والمسار المتعلق بملف . بهذا التصميم، سيتم استيراد قاعدة البيانات من جذر الاستضافة.

5. بعد إدخال الأمر، سيُطلب منك إدخال كلمة المرور للمستخدم الذي حددته في الخطوة الرابعة. أدخل كلمة المرور الخاصة بك وانقر فوق " يدخل"على لوحة المفاتيح. ملحوظةلا يظهر إدخال كلمة المرور في محطة SSH، أي سواء قمت بإدخال كلمة المرور أو لصقها، فستكون هناك دائمًا مساحة فارغة في مكانها.

بعد ذلك، عندما يصبح الخادم جاهزًا مرة أخرى لقبول الأوامر عبر SSH، فهذا يعني أن استيراد قاعدة البيانات قد اكتمل ويمكنك مواصلة العمل في المشروع.

إذا قمت بنسخ قاعدة البيانات احتياطيًا أو تصديرها إلى ملف SQL، فيمكنك استيرادها إلى إحدى قواعد بيانات MySQL الخاصة بحساب الاستضافة الخاص بك عبر phpMyAdmin.

ملحوظة.لا ينبغي أن يكون هناك سطر إنشاء قاعدة بيانات في قاعدة بيانات MySQL. وإلا، فقد تفشل عملية الاستيراد.

تتيح لك واجهة phpMyAdmin استيراد 8 ميغابايت من البيانات في المرة الواحدة. إذا كنت بحاجة إلى استيراد ملف أكبر حجمًا، فقم بتقسيمه إلى عدة أجزاء بحجم 8 ميجابايت.

انتباه!إذا كنت تقوم باستيراد قاعدة بيانات لاستضافة WordPress المُدارة للحفاظ على تشغيل موقع الويب الخاص بك بسلاسة.

استيراد ملفات SQL إلى قواعد بيانات MySQL باستخدام phpMyAdmin

بعد ذلك، سيتم تشغيل ملف SQL وتحديث قاعدة البيانات التي حددتها في ملف SQL. قد تستغرق استعادة قاعدة البيانات عدة دقائق.

ملحوظة.إذا تلقيت رسالة الخطأ، انتهت مهلة البرنامج النصي، وإذا كنت تريد إنهاء الاستيراد، فيرجى إعادة إرسال نفس الملف وسيتم استئناف الاستيراد، ويمكنك تحديد نفس الملف على الفور واستئناف العملية.