تصدير البيانات من Mysql استيراد قاعدة بيانات MySQL في وحدة التحكم

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


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


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


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


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

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

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

الخطوة 1

أول شيء عليك القيام به هو قاعدة بيانات التصديرمن موقعك الحالي (على وجه التحديد خادم محلي). هدفنا هو الحصول على استعلام SQLقاعدة بياناتنا. للقيام بذلك عليك القيام بما يلي:

الخطوة 2

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

ونتيجة لذلك، سيتم إنشاء كافة الجداول الخاصة بك مع جميع السجلات على الخادم الجديد.

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

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

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

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

هناك عدة خيارات لحل هذه المشكلة.

تحرير تكوين خادم الويب

على VDS/VPS لا توجد مشاكل خاصة بهذا الأمر، كل ما عليك فعله هو تصحيح التكوين. على وجه التحديد، في php.ini، قم بزيادة القيم القصوى المسموح بها للملفات التي تم تحميلها إلى الخادم، والحد الأقصى لحجم الملفات المنقولة باستخدام طريقة POST:

Post_max_size = 2000M upload_max_filesize = 2000M

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

الحد الأقصى لوقت التنفيذ = 32000 الحد الأقصى لوقت الإدخال = 32000

وفقط في حالة، يمكنك زيادة حجم الكمية المسموح بها من ذاكرة الوصول العشوائي:

حد الذاكرة = 512 ميجا

بعد إجراء التغييرات، تأكد من إعادة تشغيل خادم الويب.

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

قلابة سايبكس

يمكنك استخدام برامج الطرف الثالث. والتطبيق الأول الذي يستحق الاهتمام به هو Sypex Dumper.

بعد أن استخدمته لأول مرة منذ سنوات عديدة وتقديرًا لكل إمكانياته ومزاياه، يمكنني أن أصنفه بأمان على أنه "يجب اقتناؤه". Sypex Dumper هو تطبيق خادم PHP لا يتطلب التثبيت. يكفي نسخه، على سبيل المثال، إلى جذر موقعك في دليل sxd واستدعاءه في المتصفح: http://Your_Site/sxd/. تجدر الإشارة إلى أنه يجب عليك أولاً وضع تفريغ قاعدة البيانات الخاصة بك في دليل النسخ الاحتياطي. بعد تهيئة البرنامج النصي، سترى لوحة الترخيص للاتصال بقاعدة البيانات. أدخل اسم المستخدم وكلمة المرور الخاصة بك. المضيف والمنفذ اختياريان فقط إذا كانا محددين.

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

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

هذا كل شيء، في الواقع - تم استيراد قاعدة البيانات!

وحدة التحكم

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

أخيراً

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

ولكن في بيئة الاستضافة المشتركة، سيكون Sydex Dumper بالتأكيد مساعدك الذي لا غنى عنه.

اشترك في برقية وكن أول من يتلقى مواد جديدة، بما في ذلك تلك غير الموجودة على الموقع.

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

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

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

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

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

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

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

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

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