English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في MySQL يمكنكُ استخدامSELECT...INTO OUTFILEلإخراجُ بياناتٍ بسيطةً إلى ملفُ نصي.
في المثالِ التاليُ سنقومُ بتصديرُ بياناتُ جدولُ w3codebox_tbl إلى ملفُ '/tmp/w3codebox.txt':
mysql> SELECT * FROM w3codebox_tbl -> INTO OUTFILE '/tmp/w3codebox.txt';
أنتُ يمكنكُ استخدامُ خياراتُ الأمرِ لتعيينُ تنسيقُ إخراجُ البيانات، المثالُ التاليُ هوًا تصديرُ تنسيقُ CSV:
mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/w3codebox.txt' -> FIELDS TERMINATED BY ',' ENCLOSED BY '"' -> LINES TERMINATED BY '\r\n';
في المثال التالي، يتم إنشاء ملف يحتوي على القيم المفصولة بالكومياء. يمكن استخدام هذا النمط من قبل العديد من البرامج.
SELECT a,b,a+b INTO OUTFILE '/tmp/result.text' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table;
LOAD DATA INFILE هو العكس من SELECT ... INTO OUTFILE، وهو جملة SELECT. لكي تكتب بيانات قاعدة البيانات إلى ملف، استخدم SELECT ... INTO OUTFILE، وللقراءة ملف إلى قاعدة البيانات، استخدم LOAD DATA INFILE.
يمكن للجملة SELECT...INTO OUTFILE 'file_name' أن تكتب السطور المختارة إلى ملف. يتم إنشاء هذا الملف على خادم المضيف، لذا يجب أن يكون لديك صلاحية FILE حتى تستطيع استخدام هذا الجملة.
الإخراج لا يجب أن يكون ملفًا موجودًا بالفعل. لتجنب تعديل بيانات الملف.
تحتاج إلى حساب مستخدم للوصول إلى الخادم للوصول إلى الملف. وإلا لن تكون SELECT ... INTO OUTFILEفعالة.
في UNIX، يتم إنشاء الملف بعد ذلك كقابل للقراءة، وهو مملوك لخادم MySQL. هذا يعني أنك تستطيع قراءة الملف، ولكن قد لا تستطيع حذفه.
mysqldump هو برنامج استرداد قاعدة بيانات يستخدم من قبل mysql. إنه يولد بشكل رئيسي سكربت SQL يحتوي على أوامر CREATE TABLE INSERT الضرورية لإنشاء قاعدة البيانات من جديد.
لتصدير بيانات باستخدام mysqldump، يجب استخدام خيار --tab لتعيين مجلد ملف التصدير، وينبغي أن يكون هذا الهدف قابل للكتابة.
في المثال التالي، سيتم تصدير جدول w3codebox_tbl إلى مجلد /tmp:
$ mysqldump -u root -p --no-create-info \ --tab=/tmp w3codebox w3codebox_tbl كلمة المرور ********
تصدير بيانات صيغة SQL إلى ملف معين، مثل ما يلي:
$ mysqldump -u root -p w3codebox w3codebox_tbl > dump.txt كلمة المرور ********
محتويات الملف الذي تم إنشاؤه بواسطة الأوامر أعلاه كالتالي:}}
-- MySQL dump 8.23 -- -- خادم: localhost Database: w3codebox --------------------------------------------------------- -- إصدار الخادم 3.23.58 -- -- بنية الجدول للجدول `w3codebox_tbl` -- CREATE TABLE w3codebox_tbl ( w3codebox_id int(11) NOT NULL auto_increment, w3codebox_title varchar(100) NOT NULL default '', w3codebox_author varchar(40) NOT NULL default '', submission_date date default NULL, مفتاح رئيسي PRIMARY KEY (w3codebox_id), مفتاح فريد KEY AUTHOR_INDEX (w3codebox_author) ) TYPE=MyISAM; -- -- إخراج البيانات للجدول `w3codebox_tbl` -- INSERT INTO w3codebox_tbl VALUES (1, 'Learn PHP', 'John Poul', '2007-05-24'); INSERT INTO w3codebox_tbl VALUES (2, 'Learn MySQL', 'Abdul S', '2007-05-24'); INSERT INTO w3codebox_tbl VALUES (3, 'JAVA Tutorial', 'Sanjay', '2007-05-06');
إذا كنت بحاجة إلى استيراد بيانات قاعدة البيانات بأكملها، يمكنك استخدام الأمر التالي:
$ mysqldump -u root -p w3codebox > database_dump.txt كلمة المرور ********
إذا كنت بحاجة إلى إجراء نسخ احتياطي لجميع قواعد البيانات، يمكنك استخدام الأمر التالي:
$ mysqldump -u root -p --all-databases > database_dump.txt كلمة المرور ********
--all-databases 选项 في إصدارات MySQL 3.23.12 وما بعدها تم إضافتها.
يمكن استخدام هذا الأسلوب لتحقيق استراتيجية النسخ الاحتياطي للقاعدة البيانات.
إذا كنت بحاجة إلى نسخ البيانات إلى خادم MySQL آخر، يمكنك تحديد اسم القاعدة البيانات والجدول في أمر mysqldump.
تنفيذ الأوامر التالية على المضيف المصدر لنسخ البيانات إلى ملف dump.txt:
$ mysqldump -u root -p database_name table_name > dump.txt password *****
لا تحتاج إلى استخدام اسم الجدول المحدد إذا كنت تقوم بعمل نسخة احتياطية كاملة للقاعدة البيانات.
إذا كنت بحاجة إلى استيراد قاعدة البيانات المحفوظة إلى خادم MySQL، يمكنك استخدام الأوامر التالية، حيث يجب عليك التأكد من أن قاعدة البيانات قد تم إنشاؤها بالفعل:
$ mysql -u root -p database_name < dump.txt password *****
يمكنك أيضًا استخدام الأوامر التالية لاستيراد البيانات المصدرة مباشرة إلى الخادم عن بُعد، ولكن تأكد من أن الخادمين متصلين وأنهما يمكنهما الوصول إلى بعضهما البعض:
$ mysqldump -u root -p database_name \ | mysql -h other-host.com database_name
في الأوامر المذكورة أعلاه، تم استخدام أنبوب (pipe) لاستيراد البيانات المصدرة إلى المضيف المحدد.