هەناردەکردنی( Export) بنکەدراوە لە MySQL
Jun 12, 2018
4 خولەک
735 وشە
تــاگ: mysql
هاوبەشی بکە:

پێشەکی

زۆر جارئەگەریی هەیە کە گەرەکتان بێت پرۆژە یان بەرنامەی خۆتان لە سەر سیستەمێکی دیکە جێبەجی یا پەرەی پێبدەن.لەم کاتانە بێجگە لە خودی بەرنامەکە دەبێ دراوەکانی بنکەدراوەکەتان هەناردە1) بکەن ئینجا لە بنکەدراوەی دیکە هاوردەی بکەن.لەم بابەتە باس لە سەر هەناردە کردنی بنکەدراوەکان لە بنکەدراوەیێک بۆ بنکە دراوەیێکی دیکە دەکەین.

هەناردە کردنی بنکەدراوەی MYSQL بە SELECT…INTO OUTFILE

ساکارترین شێواز بۆ هەناردەکردنی دراوەکانی بنکەدراوە بە بڕگەیێکی دەقی، سوودوەرگرتن لە فەرمانی SELECT…INTO OUTFILE ــە. ئەم فەرمانە لە ئاکامی Query بە شێوازی ڕاستەوخۆ دەینێرێت بۆ ڕاژەکار بە شێوازی برگەیێکی دەق. چوارچێوەی ئەم فەرمانە بریتییە لە فەرمانێکی SELECT ئاسایی لەگەڵ INNO OUTFILE و ناوی برگەکە لە کۆتایی.دەرکەوتنی گریمانەی هەر وەک فەرمانی LOAD DATA ـیە. لەم نمونە فەرمانی خشتەی tutorials_tbl لە بڕگەی /tmp/tutorials.txt بە عینوانی tab-delimited ڕوونوس دەکەین:

mysql> SELECT * FROM tutorials_tbl 
   -> INTO OUTFILE '/tmp/tutorials.txt';

ئێوە دەتوانن شێوازی دەرکەوتنی بە یارمەتی بژاردەکانی جیاواز بگۆڕن تا نیشانی بدەن کە چۆن خانەکان و تۆمارکراوەکان بگوازن و پێناسەی بکەن. بۆ هەناردەکردنی خشتەی tutorial_tbl لە شیوازی بڕگەی CSV لە فەرمانی خوارەوە سوود دەگرین:

mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.txt'
   -> FIELDS TERMINATED BY ',' ENCLOSED BY '"'
   -> LINES TERMINATED BY '\r\n';

فەرمانی SELECT … INTO OUTFILE تایبەتمەندییەکانی خوارەوەی هەیە:

  • پەڕگەی دەرکەتنی ڕاستەوخۆ لەلایەن راژەکاری MYSQL دروستدەکرێت، هەربۆیە ناوی بڕەگە دەبێ لە ڕاژەکار نیشان بدرێت.
  • ئێوە دەبێت دەستپێگەیشتنی بڕگەی MYSQL بۆ جێبەجیکردنی فەرمانی SELECT … INTO ببێت.
  • بڕگەیێکی دەرکەوتنی دیکە نابێت پێشتر بوونی هەبێت.
  • ئێوە دەبێت هەژمارەیێکی بەکارهێنەر لە سیستەمی ڕاژەکارتان هەبێت وە رێگایێک بۆ گەڕانەوەی بڕگەکە لەو ڕاژەکارەی میوان.
  • لە سەر بنەمای UNIX ئەم بڕگە توانایی خوێندن و لە ژێر خاوەنیاتی MySQL ــە. ئەمەش بەو مانایە گەر ئێوە دەتوانن بڕگە بخوێنن مانای ئەوە نییە بتوانن بیسڕنەوە.

هەناردەکردنی خشتەیەک لە چوارچێوەی دراوەی ROW

نەرمەکالای mysqldump بۆ ڕوونووس گرتن و پشتیوانی لە خشتەکان و بنکەدراوەکانە.ئەم نەرمەکالا دەتوانێت لە دراوەکانی خشتەکان بە شێوازی برگەیێکی ROW ڕوونووس بگرێت. بۆ ئەم مەبەستە دەبێ بژاردەکانی tab– کە دایرێکتۆریێک یان بوخجەیەک نیشان دەدا دابینین بکەین. نمونە، بۆ ڕوونووس گرتن لە خشتەکانی tutorials_tbl لە بنکەدراوەی TUTORIALS کە بەشیوازی بڕگە لە دایرێکتۆری /tmp پاسکەوت بکرێت؛ وەک فەرمانی خوارەوە کردار دەکەین :

$ mysqldump -u root -p --no-create-info \
   --tab=/tmp tutorials tutorials_tbl
password ******

هەناردەکردنی ناوەرۆکی خشتەەکان یان پێناسەکردن لە شێوازی SQL

بۆ هەناردەکردنی خشتەیەک لە شێوازی SQL لە بڕگەیەک،لە فەرمانی خوارەوە سوود دەگرین

$ mysqldump -u root -p TUTORIALS tutorials_tbl > dump.txt
password ******

کۆدی سەرەوە ناوەرۆکی خوارەوە دروستدەکا :

-- MySQL dump 8.23
--
-- Host: localhost    Database: TUTORIALS
---------------------------------------------------------
-- Server version       3.23.58
 
--
-- Table structure for table `tutorials_tbl`
--
 
CREATE TABLE tutorials_tbl (
   tutorial_id int(11) NOT NULL auto_increment,
   tutorial_title varchar(100) NOT NULL default '',
   tutorial_author varchar(40) NOT NULL default '',
   submission_date date default NULL,
   PRIMARY KEY  (tutorial_id),
   UNIQUE KEY AUTHOR_INDEX (tutorial_author)
) TYPE = MyISAM;
 
--
-- Dumping data for table `tutorials_tbl`
--
 
INSERT INTO tutorials_tbl 
   VALUES (1,'Learn PHP','John Poul','2007-05-24');
INSERT INTO tutorials_tbl 
   VALUES (2,'Learn MySQL','Abdul S','2007-05-24');
INSERT INTO tutorials_tbl 
   VALUES (3,'JAVA Tutorial','Sanjay','2007-05-06');

بۆ ڕوونووس گرتن لە چەندین خشتە، گشتیان بە بەڵگەی بنکەدراوە ناونووسی دەکەین:

$ mysqldump -u root -p TUTORIALS > database_dump.txt
password ******

بۆ وەرگرتنی پاڵپشتی2) لە تەواو بنکەدراوەکانی ڕاژەکەمان لە کۆدی خوارەوە سوود دەگرین:

$ mysqldump -u root -p --all-databases > database_dump.txt
password ******

بژاردەی –all-databases– لە وشانی MySQL 3.23.12 لەبەردەستدایە.ئەم شێوازە بۆ جێبەجێکردنی بیرلێ کردنەوەی3) پشتیوانگرتن لە بنکەدراوەکان کارامەیە.

ڕوونووسی خشتەکان و بنکەدراوەکان بۆ ڕاژەیێکی دیکە

گەر هەرەکتانە خشتەکان یا بنکەدراوەکان لە MySQL serverــێک بۆ شوێنی دیکە ڕوونووس بکەن، لە فەرمانی mysqldump بە ناوی خشتە یان بنکەدراوە سوود بگرن. فەرمانی خوارەوە لە ڕاژەیەکی سەرچاوە جێبەجێ بکەن. ئەم کردارە هەرهەموو بنکەدراوەکان لە برگەیەکی dump.txt ڕوونووس دەکا:

$ mysqldump -u root -p database_name table_name > dump.txt
password *****

ئێوە دەتوانن بنکەدراوە بێ سوود وەرگرتن لە ناوی خشتە روونووس بکەن.\لە ئێستا دا بڕگەی لە ڕاژەیەکی دیکە بوونی هەیە وە لە فەرمانی خوارەوە سوود دەگرین. پێش جێبەجیکردنی ئەم فەرمانە، دڵنیا بن کە ناوی ڕاژەی database_name لەسەر ڕاژەیێک کە گەرەکتانە بڕگەی ڕوونووسی، تێدا بگوازنەوە دروستکردبێت.

$ mysql -u root -p database_name < dump.txt
password *****

ڕیگایەکی دیکە بۆ ئەنجام دان بێ سوود وەرگرتن لە برگەی ناوەندی، دەرکەوتنی mysqldump ڕاستەوخۆ لە سەر تۆڕ بە ڕاژەی MYSQL دەرکەوتنیی بنێرن.\گەر دەتوانن بە هەر دوو ڕاژە لە ڕاژەی سەرچاوە کە بنکەدراوەکەی تێدایە ببەسرێنەوە لە فەرمانی خوارەوە سوود بگرن:

$ mysqldump -u root -p database_name \
   | mysql -h other-host.com database_name

لە mysqldump نیوەی فەرمانەکان بە ڕاژەی خۆماڵی دەبسرێنەوە وە دەرکەوتن بۆ pipe دەنێرێت.نیوەکەی دیکە کە لە فەرمان ماوەتەوە بە ڕاژەی MySQL remote لە ڕاژەیەکی دیکە دەبەسرێتەوە.\ئەم pipe زانیاری چوونەژوور دەخوێنێت و هەر فەرمانی دیکە دەنێرێت بۆ ڕاژەی دیکە host.com .