تصدير البيانات من 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، فهذا يعني أن استيراد قاعدة البيانات قد اكتمل ويمكنك مواصلة العمل في المشروع.

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

قررت اليوم مواصلة المحادثة حول العمل مع 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 سنوات من الخبرةتطوير المواقع المهنية. يعمل مع بي أتش بي

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


أنصحك باختيار طريقة تصدير سريعة وتحديد التنسيق أيضًا SQL. بعد ذلك يمكنك النقر فوق موافق. ستظهر أمامك نافذة سيُطلب منك حفظ الملف فيها.


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


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


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

يتضمن هذا الإجراء نقل البيانات من قاعدة بيانات واحدة (أ) إلى أخرى (ب). كقاعدة عامة، توجد قاعدة البيانات B على الاستضافة (أو في دنفر)، وتقع قاعدة البيانات A على كمبيوتر المستخدم وهي عبارة عن ملف بامتداد SQL. قاعدة البيانات A لها اسم آخر - Dump.

كيفية استيراد قاعدة بيانات؟

استيراد قاعدة بيانات MySQL باستخدام SSH

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

Mysql -uUSERNAME -pUSERPASSWORD DBNAME< DUMPFILENAME.sql

mysql --user=USERNAME --password=USERPASSWORD DBNAME< DUMPFILENAME.sql

بدلاً من الكلمات المكتوبة بالأحرف الكبيرة نستبدل:
USERNAME - اسم مستخدم قاعدة البيانات، على سبيل المثال uhosting_databaseuser؛

USERPASSWORD - كلمة مرور مستخدم قاعدة البيانات، على سبيل المثال Rjkweuik12؛

DBNAME - اسم قاعدة البيانات التي سيتم الاستيراد إليها، على سبيل المثال uhosting_databasename

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

في هذه المقالة سننظر في سؤالين - كيف يمكنك استيراد قواعد البيانات وكيفية حل مشكلة استيراد قواعد البيانات الكبيرة عن طريق تغيير الإعدادات في php.ini.

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

لحذف الجداول، قم بتسجيل الدخول إلى الصفحة الرئيسية لـ phpMyAdmin واتبع الخطوات التالية:


2 - انقر فوق تحديد الكل؛
3 - حدد حذف من القائمة المنسدلة وانقر فوق موافق،

الآن يمكنك البدء في استيراد قاعدة بيانات MySQL. لكي تفعل هذا، اتبع هذه الخطوات:

1 - حدد قاعدة البيانات المطلوبة؛
2 - افتح علامة التبويب "استيراد" في القائمة العلوية؛
3 - من خلال التصفح، ابحث عن النسخة الاحتياطية مع قاعدة البيانات وانقر فوق موافق.

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

استيراد قواعد بيانات MySQL كبيرة

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

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

أين يوجد ملف php.ini؟ يمكنك حساب المسار إلى ملف php.ini كما يلي:

  • قم بإنشاء ملف info.php ووضع الكود التالي فيه;
  • قم بتحميل الملف الذي تم إنشاؤه إلى المجلد الجذر للموقع (www، public_html)؛
  • أدخل العنوان http://your_site/info.php في شريط العناوين في متصفحك؛
  • في النافذة التي تفتح، ابحث عن ملف التكوين المحمل، حيث سيتم الإشارة إلى المسار إلى الملف؛

لاستيراد قاعدة بيانات MySQL كبيرة، تحتاج إلى تغيير توجيهات php.ini في PHPMyAdmin.

تم العثور على ملف php.ini، والآن كل ما تبقى هو تحريره، أو بالأحرى تغيير عدة توجيهات في الملف كما هو موضح أدناه:

الحد الأقصى للوقت (بالثانية) لتحميل البرنامج النصي بالكامل:
الحد الأقصى لوقت التنفيذ = 60
الحد الأقصى للوقت (بالثواني) المحدد للبرنامج النصي لتلقي كافة البيانات:
الحد الأقصى لوقت الإدخال = 90
الحد الأقصى لحجم الذاكرة المسموح للبرنامج النصي باستخدامه:
حد الذاكرة = 128 ميجا
الحد الأقصى لحجم الملفات المرفوعة المسموح بها:
upload_max_filesize = 200M
الحد الأقصى لحجم البيانات المنقولة التي تقبلها PHP:
post_max_size = 180M

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

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