როგორ გადააგდოთ mysql ცხრილი. MySQL საცნობარო სახელმძღვანელო. MySQL მონაცემთა ბაზის ნაგავსაყრელის შექმნა კონსოლის საშუალებით

ეს პროგრამა საშუალებას გაძლევთ მიიღოთ მონაცემთა ბაზის შიგთავსის ნაგავსაყრელი („სნეპშოტი“) ან მონაცემთა ბაზების კოლექცია, რათა შექმნათ სარეზერვო ასლი ან გაგზავნოთ მონაცემები სხვა SQL მონაცემთა ბაზის სერვერზე (აუცილებლად არ არის MySQL სერვერზე). ნაგავსაყრელი შეიცავს SQL ბრძანებების კომპლექტს ცხრილების შესაქმნელად და/ან შევსებისთვის.

თუ სარეზერვო ასლი შეიქმნა სერვერზე, მაშინ აღწერილი კომუნალური პროგრამის ნაცვლად, უნდა გამოიყენოთ mysqlhotcopy. იხილეთ სექცია 4.8.6 mysqlhotcopy, MySQL მონაცემთა ბაზებისა და ცხრილების კოპირება.

Shell> mysqldump მონაცემთა ბაზა ან mysqldump --მონაცემთა ბაზები DB1 ან mysqldump --all-databases

თუ არ მიუთითებთ ცხრილების სახელებს ან არ იყენებთ --databases ან --all-databases ვარიანტებს, მიიღება მთელი მონაცემთა ბაზის (შესაბამისად, ყველა მონაცემთა ბაზის) ამონაწერი.

Mysqldump-ის თქვენი კონკრეტული ვერსიით მხარდაჭერილი ვარიანტების სია შეგიძლიათ მიიღოთ mysqldump --help ბრძანების გაშვებით.

გთხოვთ გაითვალისწინოთ, რომ mysqldump უტილიტა, რომელიც გამოიყენება --quick ან --opt ოფციების გარეშე, ჩატვირთავს მთელ შედეგს მეხსიერებაში ინფორმაციის მოპოვების შედეგის გადაყრამდე. ამან შეიძლება შექმნას პრობლემები დიდი მონაცემთა ბაზის გადაყრისას.

გაითვალისწინეთ, რომ არ უნდა გამოიყენოთ --opt ან -e ოფციები, თუ აპირებთ გამოიყენოთ mysqldump პროგრამის ახალი ასლი ნაგავსაყრელის მისაღებად და შემდეგ დაკვრას ძალიან ძველ MySQL სერვერზე.

mysqldump უტილიტა მხარს უჭერს შემდეგ ვარიანტებს:

საკეტების დამატება დაამატეთ ბრძანებები LOCK TABLES შესრულებამდე და UNLOCK TABLE თითოეული ცხრილის ნაგავსაყრელის შესრულების შემდეგ (MySQL-ზე წვდომის დასაჩქარებლად). სხვადასხვა მონაცემთა ბაზაში, ცხრილები შეიძლება იყოს სრულიად განსხვავებულ მდგომარეობაში, როდესაც ნაგავსაყრელი ხორციელდება. -S /path/to/socket, --socket=/path/to/socket სოკეტის ფაილი ლოკალჰოსტთან დასაკავშირებლად (ნაგულისხმევი ჰოსტი). შენიშვნა: ეს პარამეტრი მუშაობს მხოლოდ იმ შემთხვევაში, თუ mysqldump უტილიტა მუშაობს იმავე მოწყობილობაზე, როგორც mysqld დემონი, ხოლო მომხმარებელს/ჯგუფს, რომელიც მართავს ამ mysqld თემას (ჩვეულებრივ mysql მომხმარებელს და mysql ჯგუფს) უნდა ჰქონდეს ნებართვა შექმნას/ჩაწეროს ფაილი მითითებული მისამართი.

-u user_name, --user=user_name MySQL სერვერის მომხმარებლის სახელი, რომელიც გამოიყენება სერვერთან დაკავშირებისას. ნაგულისხმევი მნიშვნელობა არის Unix მომხმარებლის სახელი.

-O var=option, --set-variable var=option ცვლადის მნიშვნელობების დაყენება. გამოსაყენებლად ხელმისაწვდომი ცვლადები ჩამოთვლილია ქვემოთ.

-v, --verbose გაძლიერებული გამომავალი რეჟიმი. აჩვენებს უფრო დეტალურ ინფორმაციას პროგრამის მუშაობის შესახებ.

-V, --ვერსია ამობეჭდეთ ვერსიის ინფორმაცია და გადით პროგრამიდან.

-w, --where="where-condition" გადაყარეთ მხოლოდ შერჩეული ჩანაწერები. გთხოვთ გაითვალისწინოთ, რომ ციტატები აუცილებელია.

"--where=user="jimf"" "-wuserid>1" "-wuserid -X, --xml წარმოადგენს მონაცემთა ბაზის ამონაწერს, როგორც XML. -x, --first-slave იბლოკება ყველა ცხრილი ყველა მონაცემთა ბაზაში. -O net_buffer_length=#, სადაც # ყველაზე გავრცელებული გამოყენება mysqldump არის ყველა მონაცემთა ბაზის სარეზერვო ასლის შექმნა იხილეთ განყოფილება 4.4.1 მონაცემთა ბაზის სარეზერვო ასლის შექმნა mysqldump --opt database > backup-file.sql.

Mysql მონაცემთა ბაზა

Mysql -e "source /patch-to-backup/backup-file.sql" მონაცემთა ბაზა

ეს პროგრამა ხშირად გამოიყენება მონაცემთა ბაზიდან სხვა MySQL სერვერზე ინფორმაციის გადასატანად:

მონაცემთა ბაზის გადასატანად ჯერ უნდა შექმნათ მისი ნაგავსაყრელი, ანუ მოათავსოთ შიგთავსი ცალკე sql ფაილში. ეს კეთდება მენიუში phpMyAdminჰოსტინგზე, საიდანაც ახორციელებთ საიტს. შედით phpMyAdmin-ში, აირჩიეთ მონაცემთა ბაზა, რომელიც უნდა გადაიტანოთ მარცხნივ და დააჭირეთ ღილაკს ” ექსპორტი» ზედა მენიუში.

გაიხსნება დიალოგური ფანჯარა, რომელშიც უნდა აირჩიოთ SQL მონაცემთა ბაზის ტიპი, შემდეგ დააჭირეთ ღილაკს OK. დაელოდეთ სანამ მონაცემთა ბაზის ფაილი ჩამოიტვირთება თქვენს კომპიუტერში.

ახლა ეს ფაილი სწორად უნდა იყოს განთავსებული ჩვენს ჰოსტინგზე. ამისათვის თქვენ ჯერ უნდა შექმნათ MySQL მონაცემთა ბაზა თქვენს cPanel ანგარიშში, დაამატოთ მას მომხმარებელი და მიანიჭოთ მას პრივილეგიები. ქვემოთ აღვწერთ, თუ როგორ შევქმნათ მონაცემთა ბაზა MySQL-ში.

გადადით cPanel-ზე და იპოვეთ განყოფილება " მონაცემთა ბაზები", აირჩიეთ "".

გაიხსნება ახალი ფანჯარა. ნაბიჯი 1, შეიყვანეთ მონაცემთა ბაზის სახელი. გთხოვთ, გაითვალისწინოთ, რომ მონაცემთა ბაზის სახელი ყოველთვის იქნება პრეფიქსის მქონე სახელის პირველი ნახევარი შეიცავს cPanel ანგარიშის სახელს.

სახელის შეყვანის შემდეგ დააჭირეთ ღილაკს შემდეგი ნაბიჯი».

ნაბიჯი 2, თქვენ უნდა შექმნათ MySQL მომხმარებელი მონაცემთა ბაზისთვის და დააყენოთ პაროლი. ყველა მონაცემის შეყვანის შემდეგ დააჭირეთ ღილაკს " შექმენით მომხმარებელი».

შექმნილი მომხმარებლის პრივილეგიების დაყენებისას აირჩიეთ ვარიანტი " ყველა უფლება"და გადადით შემდეგ ეტაპზე.

თუ წინა ნაბიჯებში ყველაფერი სწორად გაკეთდა, მონაცემთა ბაზის ოსტატი შეგატყობინებთ, რომ ჰოსტინგზე მონაცემთა ბაზის შექმნა წარმატებით დასრულდა.

ახლა თქვენ შეგიძლიათ იპოვოთ შექმნილი მონაცემთა ბაზა ხელმისაწვდომი MySQL მონაცემთა ბაზების სიაში ამავე სახელწოდების მართვის პანელის მენიუში.

ახლა, MySQL მონაცემთა ბაზის აღსადგენად, ჩვენ შექმნილ მონაცემთა ბაზაში შემოგვაქვს ძველი ჰოსტინგიდან შენახული ფაილის შინაარსი გაფართოებით. .sql. ამისათვის, cPanel-ის მთავარ გვერდზე აირჩიეთ მენიუს პუნქტი ” phpMyAdmin”იგივე განყოფილებაში” მონაცემთა ბაზები" ფანჯარაში, რომელიც იხსნება, აირჩიეთ ახლად შექმნილი მონაცემთა ბაზა მარცხენა მენიუდან და დააწკაპუნეთ ჩანართზე იმპორტი» ზედა მენიუში.

დააჭირეთ ღილაკს აირჩიეთ ფაილი", დიალოგურ ფანჯარაში აირჩიეთ ადრე შენახული sql ფაილი და ატვირთეთ იგი ჰოსტინგში. დარწმუნდით, რომ კოდირების ტიპი არის utf-8. OK-ზე დაჭერის შემდეგ დაელოდეთ შეტყობინებას, რომ მონაცემთა ბაზის იმპორტი წარმატებით დასრულდა.

ამ ეტაპზე დასრულებულია ყველა ის ნაბიჯი, რომელიც საჭიროა მონაცემთა ბაზის სხვაზე გადასატანად.

მონაცემთა ბაზის ნაგავსაყრელის (სარეზერვო) გაკეთება ძალიან მნიშვნელოვანია. ამიტომაც გავაკეთე რამდენიმე კომენტარი მაგალითებით ისეთი შესანიშნავი უტილიტასთვის, როგორიცაა mysqldump.

mysqldump - პროგრამა, რომელიც საშუალებას გაძლევთ გადააგდოთ მონაცემთა ბაზის შიგთავსი ან მონაცემთა ბაზების ნაკრები, რათა შექმნათ სარეზერვო ასლი ან გაგზავნოთ მონაცემები სხვა SQL მონაცემთა ბაზის სერვერზე (აუცილებლად არ არის MySQL სერვერი). ნაგავსაყრელი შეიცავს SQL ბრძანებების კომპლექტს ცხრილების შესაქმნელად და/ან შევსებისთვის.

mysqldump-u root -p -f სახელი_მონაცემთა ბაზა >

ამ ბრძანებით ვაკეთებთ მონაცემთა ბაზის სარეზერვო ასლს სახელწოდებით name_database დისკზე C ფაილში mydb_backup_name_database.txt.

თქვენ არ გჭირდებათ ფაილის შექმნა;

mysql-u root -p -f სახელი_მონაცემთა ბაზა< C:\mydb_backup_name_database.txt

ამ ბრძანებით ჩვენ იმპორტირებთ სარეზერვო მონაცემებს ფაილიდან C:\mydb_backup_name_database.txt

შენიშვნა: -f, --force არის ვარიანტი, რომელიც განსაზღვრავს გაგრძელებას მაშინაც კი, თუ მიღებულია SQL შეცდომა, ე.ი. შეცდომების იგნორირება. მაგალითად, თუ იდენტური მწკრივი უკვე არსებობს ცხრილში.

პაროლის მოთხოვნის თავიდან ასაცილებლად, თქვენ უნდა დაწეროთ ის დაუყოვნებლივ -p-ს შემდეგ, ანუ სივრცეების გარეშე. თუ პაროლი Pwd, მაშინ მაგალითი ასე გამოიყურება:

mysqldump-u ფესვი -გვ Pwd-f name_database > C:\mydb_backup_name_database.txt

თუ ხშირად იყენებთ ამ ბრძანებას, მაშინ უმჯობესია შექმნათ ცალკე მომხმარებელი საჭირო უფლებებით, რათა შემცირდეს root პაროლის ხილვადობა.

მოდით შევხედოთ უფრო დახვეწილ mysqldump პარამეტრებს:

-- მონაცემთა ბაზებისაშუალებას აძლევს mysqldump-ს ჩართოს CREATE DATABASE /*!33333 IF NOT EXISTS*/ DBNAME და გამოიყენოს DBNAME ბრძანებები აღდგენის სკრიპტში. ეს საშუალებას მოგცემთ შექმნათ სამუშაო მონაცემთა ბაზები ნულიდან. ანუ --databases-ის გამოყენების გარეშე, ვარაუდობენ, რომ მომხმარებელი აღადგენს ერთიან მონაცემთა ბაზას და ცალსახად აკონკრეტებს სად უნდა განთავსდეს აღდგენილი მონაცემები. თუ სარეზერვო ასლი იქმნება მონაცემთა სრულად მოქმედი ასლის მიღების მიზნით, მაგალითად, სხვა MySQL სერვერზე, მაშინ თქვენ უნდა გამოიყენოთ ეს გასაღები;

--ყველა-მონაცემთა ბაზასაშუალებას გაძლევთ შექმნათ ყველა მონაცემთა ბაზის ასლი, რომელიც არსებობს მოცემულ MySQL სერვერზე. თუ თქვენ გჭირდებათ მხოლოდ ზოგიერთი მონაცემთა ბაზის ასლების გაკეთება, თქვენ უბრალოდ უნდა მიუთითოთ ისინი გამოყოფილი ინტერვალით ბრძანების ხაზიდან mysqldump-ის გამოძახებისას (იხ. ზემოთ);

გასაღები --დახმარება. Mysqldump პროგრამას აქვს მრავალი ვერსია. ამ კლავიშის გამოყენებით შეგიძლიათ ნახოთ, რა ფუნქციებს უჭერს მხარს კონკრეტულად თქვენი ვერსია;

--add-drop-table- გადამრთველი, რომელიც აიძულებს mysqldump-ს დაამატოს drop table ბრძანება მიღებულ სკრიპტში ცხრილების შექმნამდე. ეს საშუალებას მოგცემთ თავიდან აიცილოთ შეცდომები მონაცემთა ბაზის სარეზერვოდან აღდგენისას. რა თქმა უნდა, უნდა გაითვალისწინოთ, რომ სამუშაო ასლში განთავსებული ცხრილები (თუ სარეზერვოში იგივე სახელწოდების ცხრილები არსებობს) წაიშლება ძირითადი მონაცემთა ბაზიდან და ხელახლა შეიქმნება სარეზერვო ასლიდან სარეზერვო ასლიდან აღდგენამდე;

-- მონაცემების გარეშე. ამ კლავიშის გამოყენებით, შეგიძლიათ სწრაფად გააკეთოთ ცხრილის/მონაცემთა ბაზის სტრუქტურის ასლი თავად მონაცემების გარეშე. მაგალითად, თქვენ შექმენით რთული ცხრილი და გსურთ შეინახოთ მისი სტრუქტურა მომავლისთვის, მაგრამ არ გჭირდებათ თავად მონაცემები, რომლებიც ამ ცხრილშია სარეზერვო ასლში;

-- შედეგი-ფაილი=...- ეს გადამრთველი შეიძლება გამოყენებულ იქნას ფაილზე გამოსავლის გადამისამართებლად. თქვენ შეგიძლიათ გამოიყენოთ რეგულარული Unix გადამისამართება ">" ბრძანებით, ან შეგიძლიათ გამოიყენოთ ეს გასაღები. ვის რა მოსწონს?

კიდევ ერთი ძალიან სასარგებლო რჩევა Mysqldump-ის გამოყენებისთვის ჰოსტინგის გარემოში. როგორც წესი, ჰოსტინგის გამოყენებისას მომხმარებელს გარკვეული შეზღუდვები ეკისრება. მაგალითად, თქვენ არ შეგიძლიათ დაიკავოთ გარკვეული რაოდენობის ფიზიკური მეხსიერება (RAM, RAM). mysqldump ნაგულისხმევად ათავსებს MySQL სერვერიდან მიღებულ ყველა მონაცემს მეხსიერებაში და შემდეგ წერს მათ დისკზე. შესაბამისად, თუ პროვაიდერი საშუალებას მოგცემთ დაიკავოთ, მაგალითად, 30 მბ მეხსიერება, და მონაცემთა ბაზა, რომელსაც აკოპირებთ mysqldump-ის გამოყენებით, იკავებს 50 მბ-ს, რა თქმა უნდა, აქ წარმოიქმნება შეცდომა - mysqldump ვერ იმუშავებს სწორად. და ჩამოვარდება, რის შესახებაც შეგატყობინებთ. იმისთვის, რომ "აიძულოთ" mysqldump ჩაწეროს მონაცემები პირდაპირ დისკზე, ვიდრე დროებით შეინახოს ისინი მეხსიერებაში, გამოიყენეთ გასაღები --სწრაფი. ეს პრობლემას მოაგვარებს.

აქ არის კიდევ რამდენიმე სასარგებლო მაგალითი:

mysqldump -u root -p Pwd-f --default-character-set=cp1251 DBNAME| gzip -c > filename.txt .gz

თქვენ შეგიძლიათ გახსნათ ასეთი არქივი ბრძანებით:

gunzip ფაილის სახელი.txt.gz

სარეზერვო ასლის შექმნის თარიღის გასაგებად, შეგიძლიათ დაწეროთ შემდეგი ბრძანება:

mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME | gzip -c > `თარიღი „+%Y-%m-%d“`.gz

და თუ თქვენ უნდა გააკეთოთ ნაგავსაყრელები სხვადასხვა კოდირებით, მაშინ მოსახერხებელია ცვლადების გამოყენება:

კომპლექტი DBCHARACTER= utf8

კომპლექტი DBNAME= დარღვევა

mysqldump -u root -p Pwd-f --default-character-set=$ DBCHARACTER $DBNAME| bzip2 -c > sql. $DBNAME.`თარიღი "+%Y-%m-%d"`.bz2

თუ გსურთ ძველი არქივების წაშლის ავტომატიზაცია, სცადეთ გამოიყენოთ cron და find ბრძანება, რომელიც ჩვეულებრივ გვხვდება unix-ში. პერიოდულად სირბილი

იპოვე~/directory-with-archives -name "*.gz" -mtime +7 -exec rm -f () \;

ამრიგად, თქვენ წაშლით არქივებს, რომლებიც შვიდ დღეზე მეტია.

ეს პოსტი შეიცავს ყველაზე ხშირად გამოყენებულ ბრძანებებს MySQL მონაცემთა ბაზების სარეზერვო ასლების შესაქმნელად ან განსათავსებლად.

ისე, უბრალოდ დავიღალე გასაღებების გამუდმებით გუგლიდან, როცა ისინი "უცებ" მჭირდება.

ცოტა თეორია...

MySQLDUMP არის ინსტრუმენტი, რომელიც საშუალებას გაძლევთ შექმნათ MySQL მონაცემთა ბაზების სარეზერვო ასლები. შედეგად, ვიღებთ .sql ფაილს მონაცემთა ბაზის ნაგავსაყრელთან ერთად. ეს ფაილი შეიცავს Sql კოდს ტექსტის სახით, ე.ი. თქვენ ყოველთვის შეგიძლიათ გახსნათ ის ტექსტური რედაქტორით სანახავად, რედაქტირებისთვის და ა.შ.
თქვენ შეგიძლიათ აღადგინოთ ასეთი ნაგავსაყრელი mysql უტილიტის გამოყენებით STDIN-ის საშუალებით.

სხვათა შორის, არსებობს ასევე ისეთი პროგრამა, როგორიცაა MySqlHotCopy, რომელიც საუკეთესოდ გამოიყენება ცხელი სარეზერვო ასლების შესაქმნელად, რადგან ის ბლოკავს მონაცემთა ბაზას და აკოპირებს მონაცემთა ბაზის ფაილებს სასურველ ადგილას. მაგრამ ეს რამ იმუშავებს მხოლოდ იმ შემთხვევაში, თუ ის მუშაობს თავად სერვერზე, მუშაობს მხოლოდ MyISAM და Archive ცხრილებთან და უფრო შესაფერისია დიდი მონაცემთა ბაზებისთვის.
მონაცემების აღდგენა შეგიძლიათ შენახული ფაილების MySQL მონაცემთა დირექტორიაში კოპირებით.

მაგრამ, ზოგადად, ეს არ ეხება მას ... იქნებ სხვა სტატიაში დავწერო "ცხელ ასლზე" ...

მონაცემთა ბაზის სარეზერვო ასლის შექმნა

დავიწყოთ ყველაზე გავრცელებული ბრძანებით site.ru საიტის site.ru ფაილში გადაყრისთვის:

Mysqldump -uroot -h10.30.30.10 -p site_ru > site_ru.sql

    მეტი გასაღებების შესახებ:
  • -უ(--user=...) არის მონაცემთა ბაზის მომხმარებლის სახელი;
  • -თ(—host=…) არის ჰოსტი, რომელზეც თავად სერვერი მდებარეობს. თუ სერვერი ლოკალურია, მაშინ ამ პარამეტრის გამოყენება არ შეიძლება, ან შეგიძლიათ იქ შეიყვანოთ localhost. ასევე გაითვალისწინეთ, რომ სერვერის ip გასაღების შემდეგ უნდა დაიწეროს სივრცის გარეშე;
  • -გვ(--პაროლი=...) არის მომხმარებლის პაროლი. თუ ეს გასაღები არ გამოიყენება, მაშინ მონაცემთა ბაზასთან დაკავშირება შესაძლებელი იქნება, თუ პაროლი არ არის. ასევე, არავინ გიკრძალავთ ბრძანებაში პაროლის შეყვანას და გასაღების შემდეგ არ უნდა იყოს ადგილი (მაგალითად: -p1234567890, სადაც 1234567890 არის პაროლი);
  • site_ruეს არის მონაცემთა ბაზის სახელი MySql სერვერზე;
  • site_ru.sqlეს არის dump ფაილი.

რამდენიმე მონაცემთა ბაზის სარეზერვო ასლის შესაქმნელად, შეგიძლიათ გამოიყენოთ გასაღები -ბდა მიუთითეთ რამდენიმე მონაცემთა ბაზა, აქ არის მაგალითი:

Mysqldump -uroot -h10.30.30.10 -p site_ru site2_ru site3_ru > sites.sql

თუ სიტუაცია არ გაძლევს დროს ფიქრისთვის და თქვენ უნდა გააკეთოთ ყველა მონაცემთა ბაზის სარეზერვო ასლი, მაშინ ამ სიტუაციაში შეგიძლიათ გამოიყენოთ გასაღები --ყველა-მონაცემთა ბაზა, აი მაგალითი:

Mysqldump -uroot -h10.30.30.10 -p -A > all-db.sql

სხვათა შორის, არის ნიუანსი.

თუ თქვენ აკეთებთ მონაცემთა ბაზის სარეზერვო ასლს გაშვებულ და, უფრო მეტიც, აქტიურად გამოყენებულ სერვერზე, მაშინ რისკავთ ლოგიკური კავშირების გაწყვეტას. ამის თავიდან ასაცილებლად რამდენიმე გზა არსებობს.

პირველი გზა არის მაგიდების ჩაკეტვა, ე.ი. შეგიძლიათ გამოიყენოთ --lock-tables პარამეტრი, აქ არის მაგალითი:

Mysqldump -uroot -h10.30.30.10 -p --lock-tables site_ru > site_ru.sql

მაგრამ სარეზერვო ასლის შექმნის მომენტში კლიენტის მოთხოვნები შეჩერდება... და, შესაბამისად, შეიძლება იყოს ვადები.

მეორე გზა არის --flush-log გადამრთველის გამოყენება სარეზერვო ასლის შექმნისას. ეს გასაღები დახურავს მოქმედებების ძველ ჟურნალს და შექმნის ახალს. თუ ვინმე დაწერს რამეს ასლის შექმნისას, ეს აისახება ჟურნალის დასაწყისში და შესაძლებელი იქნება ამ ცვლილების მონაცემთა ბაზაში გადატანა. შემდეგი, სარეზერვო ასლის დასრულების შემდეგ, თქვენ უნდა გაუშვათ ბრძანება mysqladmin -flush-logs და დატოვოთ ბოლო ორობითი ჟურნალის ასლი.

მონაცემთა ბაზის სარეზერვო ასლის აღდგენა

აქ უკვე იმართება "mysql" პროგრამა. აი მაგალითი:

Mysql -uroot -h10.30.30.10 -p site_ru< site_ru.sql

სხვა გზა, უფრო პედანტური:

Mysql -uroot -p შეიყვანეთ პაროლი: კეთილი იყოს თქვენი მობრძანება MySQL მონიტორზე. ბრძანებები მთავრდება ; ან\გ. თქვენი MySQL კავშირის ID არის 35 სერვერის ვერსია: 5.6.35-1+deb.sury.org~xenial+0.1 (Ubuntu) საავტორო უფლება (c) 2000, 2016, Oracle და/ან მისი შვილობილი კომპანიები. ყველა უფლება დაცულია. Oracle არის Oracle Corporation-ის და/ან მისი შვილობილი კომპანიების რეგისტრირებული სავაჭრო ნიშანი. სხვა სახელები შეიძლება იყოს მათი შესაბამისი მფლობელების სავაჭრო ნიშნები. ჩაწერეთ "დახმარება;" ან "\h" დახმარებისთვის. ჩაწერეთ "\c" მიმდინარე შეყვანის განცხადების გასასუფთავებლად. mysql> გამოიყენეთ site_ru; mysql> წყარო site_ru.sql;

კარგად, თუ თქვენი მონაცემთა ბაზა შენახულია gz არქივში, მაშინ შეგიძლიათ დააკავშიროთ mysql და zcat ბრძანებები ასე:

Zcat site_ru.sql.gz | mysql -uroot -h10.30.30.10 -p site_ru

მეტი ვარიანტი mysqldump-ის გამოყენებისთვის

მაგალითად, ჩვენ გვჭირდება მონაცემთა ბაზა dev ზონაში, sandbox, ასე ვთქვათ, და ძირითადი მონაცემთა ბაზის ზომა ძალიან დიდია. თქვენ შეგიძლიათ გამოიყენოთ -where="true limit 150" გასაღები, რომელზეც ჩვენ ცალსახად მივუთითებთ მონაცემთა ნიმუშს არაუმეტეს 150 ჩანაწერით. აი მაგალითი:

Mysqldump -uroot -h10.30.30.10 -p --where="true limit 150" site_ru > site_ru.sql

თუ ჩვენ გვჭირდება მხოლოდ სტრუქტურა მონაცემთა გარეშე, მაშინ შეგვიძლია გამოვიყენოთ --no-data შეცვლა, აი მაგალითი

Mysqldump -uroot -h10.30.30.10 -p --no-data site_ru > site_ru.sql

თუ ჩვენ გვჭირდება მხოლოდ ერთი ცხრილის ასლი, მაშინ აქ არის ბრძანების მაგალითი:

Mysqldump -u root -p testdb ცხრილის სახელი > testdb_table_backup.sql

თუ ჩვენ გვჭირდება ტრიგერების, პროცედურების და მოვლენების ასლი (ჩაშენებული გრაფიკი), მაშინ აქ არის მაგალითი:

Mysqldump --no-create-info --no-data --triggers --routines --events -uroot -p site_ru | gzip > ~/database.sql.gz

თქვენ ასევე შეგიძლიათ დაუყოვნებლივ შექმნათ დაარქივებული მონაცემთა ბაზის ნაგავსაყრელი. თქვენ შეგიძლიათ გააკეთოთ ეს ასე:

Mysqldump -uroot -p site_ru | gzip > /path/to/site_ru.sql.gz

თქვენ ასევე შეგიძლიათ მიუთითოთ არქივის შექმნის თარიღი, ასე:

Mysqldump -uroot -p site_ru | gzip > `თარიღი +/path/to/site_ru.sql.%Y%m%d.%H%M%S.gz`

გასაღებები mysqldump-ის გამოყენებისთვის

ქვემოთ მოცემულია ყველაზე პოპულარული mysqldump გასაღებები:

სიის გაფართოება...

  • --add-drop-database - ამატებს DROP DATABASE განცხადებას ყოველი CREATE DATABASE განაცხადის წინ.
  • --add-drop-table — ამატებს DROP TABLE განცხადებას ყოველი CREATE TABLE განცხადების წინ.
  • --add-locks - ამატებს LOCK TABLE განცხადებას შესრულებამდე და UNLOCK TABLE განცხადებას თითოეული ცხრილის ნაგავსაყრელის შესრულების შემდეგ (MySQL-ზე წვდომის დასაჩქარებლად).
  • --all-databases, -A — ინახავს ყველა ცხრილს ყველა მონაცემთა ბაზიდან, რომელსაც მართავს მიმდინარე სერვერი.
  • --allow-keywords - დაუშვით სვეტების სახელების შექმნა, რომლებიც შეესაბამება საკვანძო სიტყვებს. კონფლიქტების თავიდან აცილება უზრუნველყოფილია ცხრილის სახელის დამატებით თითოეული სვეტის სახელზე პრეფიქსის სახით.
  • — კომენტარები, -i — ეს პარამეტრი საშუალებას გაძლევთ დაამატოთ დამატებითი ინფორმაცია ნაგავსაყრელზე, როგორიცაა mysqldump ვერსია, MySQL ვერსია, ჰოსტის სახელი, სადაც მდებარეობს MySQL სერვერი.
  • --compact ეს პარამეტრი იწვევს mysqldump-ის შექმნას ნაგავსაყრელის ყველაზე კომპაქტური ფორმატის გამოყენებით. პარამეტრი არის - კომენტარების საპირისპირო.
  • --compatible=name — პარამეტრი წარმოქმნის გამოსავალს, რომელიც თავსებადია სხვა DBMS-ებთან ან MySQL-ის ძველ ვერსიებთან. სახელის საკვანძო სიტყვის ნაცვლად შეგიძლიათ გამოიყენოთ: "ansi", "mysql323", "mysql40", "postgresql", "oracle", "mssql", "db2", "maxdb", "no_key_options", "no_table_options", "no_field_options" . თქვენ შეგიძლიათ გამოიყენოთ მრავალი მნიშვნელობა, გამოყოფილი მძიმეებით.
  • --complete-insert, -c — გამოიყენეთ INSERT განაცხადის სრული ფორმა (სვეტების სახელებით).
  • --create-options - ამატებს დამატებით ინფორმაციას CREATE TABLE განცხადებებს. ეს შეიძლება იყოს ცხრილის ტიპი, საწყისი AUTO_INCREMENT მნიშვნელობა და სხვა პარამეტრები.
  • --databases, -B — პარამეტრი გაძლევთ საშუალებას მიუთითოთ რამდენიმე მონაცემთა ბაზის სახელები, რომლებისთვისაც გსურთ შექმნათ dump.
  • --delayed — გამოიყენეთ ბრძანება INSERT DELAYED რიგების ჩასმისას.
  • --delete-master-logs - მასტერ რეპლიკაციის სერვერი ავტომატურად წაშლის ორობით ჟურნალებს (logbin) მას შემდეგ, რაც ნაგავსაყრელი წარმატებით იქმნება mysqldump-ის გამოყენებით. ეს პარამეტრი ავტომატურად რთავს "--მასტერ-მონაცემების" ოფციას.
  • --disable-keys, -K - ყოველი ცხრილისთვის აკრიფეთ INSERT განცხადება გამონათქვამებით /*!40000 ALTER TABLE tbl_name DISABLE KEYS */; და /*!40000 ALTER TABLE tbl_name ENABLE KEYS */; ნაგავსაყრელის შედეგის გამომავალში. ეს დააჩქარებს მონაცემთა ჩატვირთვას სერვერზე ცხრილებისთვის, როგორიცაა MyISAM, რადგან ინდექსები იქმნება ყველა მონაცემის შეყვანის შემდეგ.
  • --extended-insert, -e — გამოიყენეთ INSERT ბრძანება ახალი მრავალხაზოვანი სინტაქსით (აუმჯობესებს შეყვანის განცხადებების კომპაქტურობას და შესრულებას).
  • --flush-logs, -F — ჩაწერეთ სისტემის ჟურნალის მონაცემები MySQL სერვერის ბუფერიდან დისკზე ნაგავსაყრელის დაწყებამდე.
  • --force, -f — გააგრძელეთ მაშინაც კი, თუ შეცდომა მოხდა ნაგავსაყრელის შექმნის პროცესში.
  • —hex-blob — პარამეტრი საშუალებას გაძლევთ წარმოადგინოთ ორობითი მონაცემები BINARY, VARBINARY, BLOB და BIT ტიპის ველებში თექვსმეტობით ფორმატში. ასე რომ, თანმიმდევრობა "abc" შეიცვლება 0x616263-ით.
  • --ignore-table=db_name.tbl_name — იძლევა db_name მონაცემთა ბაზის tbl_name ცხრილის იგნორირებას ნაგავსაყრელის შექმნისას. თუ საჭიროა რამდენიმე ცხრილის გამორიცხვა ნაგავსაყრელიდან, თქვენ უნდა გამოიყენოთ რამდენიმე პარამეტრი „--იგნორირება-ცხრილი“, თითოეულ პარამეტრში ერთი ცხრილის მითითებით.
  • --insert-ignore — ამატებს IGNORE საკვანძო სიტყვას INSERT განცხადებაში.
  • --lock-all-tables, -x — ამ პარამეტრის მითითება იწვევს ყველა მონაცემთა ბაზის ყველა ცხრილის დაბლოკვას, სანამ იქმნება ყველა მონაცემთა ბაზის სრული ნაგავსაყრელი.
  • --lock-tables, -l — ამ პარამეტრის მითითებით იბლოკება მონაცემთა ბაზის ცხრილები, რომლებისთვისაც იქმნება ნაგავსაყრელი.
  • --no-autocommit - მოიცავს ყველა INSERT განცხადებას იმავე მაგიდაზე ერთ ტრანზაქციაში, რაც გამოიწვევს მონაცემთა უფრო სწრაფად ჩატვირთვას.
  • --no-create-db, -n — თრგუნავს CREATE DATABASE განცხადებების გადაყრას, რომლებიც ავტომატურად ემატება --databases და --all-databases პარამეტრების გამოყენებისას.
  • --no-data, -d — თრგუნავს ნაგავსაყრელში INSERT განცხადებების შექმნას, რაც შეიძლება სასარგებლო იყოს მონაცემთა ბაზის სტრუქტურის გადაყრისას თავად მონაცემების გარეშე.
  • — opt — პარამეტრი განკუთვნილია მონაცემთა სარეზერვო ასლის სიჩქარის ოპტიმიზაციისთვის და არის მალსახმობი, რომელიც მოიცავს შემდეგ ვარიანტებს: — სწრაფი — ცხრილის დამატება — ჩაკეტვა — შექმნა ოფციები — კლავიშების გამორთვა — გაფართოებული ჩასმა — დაბლოკვა -ცხრილები - კომპლექტი-სიმბოლოები. მას შემდეგ, რაც MySQL 4.1, --opt ვარიანტი გამოიყენება ნაგულისხმევად, ე.ი. ყველა ზემოთ ჩამოთვლილი ვარიანტი ჩართულია ნაგულისხმევად, მაშინაც კი, თუ ისინი არ არის მითითებული. ამ ქცევის გამორიცხვის მიზნით, თქვენ უნდა გამოიყენოთ --skip-opt პარამეტრი
  • --order-by-primary - პარამეტრის მითითება იწვევს ამას. რომ თითოეული ცხრილი დალაგებულია მისი ძირითადი გასაღების ან პირველი უნიკალური ინდექსის მიხედვით.
  • --პორტი, -P — TCP პორტის ნომერი, რომელიც გამოიყენება ჰოსტთან დასაკავშირებლად.
  • —protocol=(TCP|SOCKET|PIPE|MEMORY) — პარამეტრი საშუალებას გაძლევთ დააყენოთ პროტოკოლი სერვერთან დასაკავშირებლად.
  • —სწრაფი, -q — საშუალებას გაძლევთ დაიწყოთ ნაგავსაყრელის გენერირება სერვერიდან მონაცემების სრულად ჩამოტვირთვის მოლოდინის გარეშე, რითაც დაზოგავთ მეხსიერებას.
  • --quote-names, -Q — მოათავსეთ მონაცემთა ბაზა, ცხრილები და სვეტების სახელები backticks-ში `. როგორც MySQL 4.1, ეს პარამეტრი ჩართულია ნაგულისხმევად.
  • --replace — ამატებს REPLACE საკვანძო სიტყვას INSERT განცხადებაში. ეს ვარიანტი პირველად გამოჩნდა MySQL 5.1.3-ში.
  • --result-file=/path/to/file, -r /path/to/file — პარამეტრი მიმართავს ნაგავსაყრელს ფაილის ფაილში. ეს ვარიანტი განსაკუთრებით სასარგებლოა Windows-ზე, ბრძანების ხაზის გამოყენების გარეშე. როდესაც თქვენ შეგიძლიათ შედეგის გადამისამართება ფაილზე მიმდევრობების გამოყენებით > და >>.
  • --routines, -R — ეს ოფცია ქმნის შენახული პროცედურებისა და ფუნქციების ნაგავსაყრელს. ხელმისაწვდომია MySQL 5.1.2-ით.
  • --single-transaction - ოფცია ქმნის ნაგავსაყრელს, როგორც ერთი ტრანზაქცია.
  • — skip-comments — ეს პარამეტრი საშუალებას გაძლევთ აღკვეთოთ დამატებითი ინფორმაციის გამომავალი ნაგავსაყრელზე.
  • --socket=/path/to/socket, -S /path/to/socket — სოკეტის ფაილი ლოკალჰოსტთან დასაკავშირებლად.
  • —tab=/path/, -T /path/ — ამ პარამეტრის გამოყენებისას, თითოეული ცხრილისთვის ბილიკის დირექტორიაში იქმნება ორი ცალკე ფაილი: tbl_name.sql, რომელიც შეიცავს CREATE TABLE განცხადებას და tbl_name.txt, რომელიც შეიცავს ჩანართებით გამოყოფილი ცხრილის მონაცემები. მონაცემთა ფორმატის ცალსახად გაუქმება შესაძლებელია --fields-xxx და --lines-xxx ოფციების გამოყენებით.
  • --tables - უგულებელყოფს --databases (-B) პარამეტრს. ყველა არგუმენტი ამ პარამეტრის შემდეგ განიხილება, როგორც ცხრილის სახელები.
  • — triggers — ქმნის ტრიგერების ნაგავსაყრელს. ეს პარამეტრი ჩართულია ნაგულისხმევად. მის გასათიშად გამოიყენეთ --skip-triggers ვარიანტი.
  • --events, -E — ქმნის მოვლენის ნაგავსაყრელს. იხილეთ MySQL Event Scheduler ან ჩაშენებული ღონისძიებების მენეჯერი MySQL-ში.
  • —tz-utc — ამ პარამეტრის გამოყენებისას, ნაგავსაყრელზე დაემატება ისეთი ოპერატორი, როგორიცაა SET TIME_ZONE=’+00:00′, რაც საშუალებას მისცემს ნაგავსაყრელების გაცვლას სხვადასხვა დროის ზონაში.
  • --verbose, -v — გაფართოებული გამომავალი რეჟიმი. აჩვენებს უფრო დეტალურ ინფორმაციას პროგრამის მუშაობის შესახებ.
  • --version, -V — ინფორმაციის ჩვენება პროგრამის ვერსიის შესახებ.
  • —where='where-condition', -w 'where-condition' — გადაყარეთ მხოლოდ შერჩეული ჩანაწერები. გთხოვთ გაითვალისწინოთ, რომ ციტატები აუცილებელია.
  • --xml, -X — წარმოადგენს მონაცემთა ბაზის ნაგავსაყრელს, როგორც XML.
  • --first-slave, -x — იბლოკება ყველა ცხრილი ყველა მონაცემთა ბაზაში.
  • —debug=…, -# — პროგრამის პროგრესის მონიტორინგი (გამართვისთვის).
  • --help — აჩვენეთ დახმარების ინფორმაცია და გადით პროგრამიდან.


რაიმე შეკითხვა?

შეატყობინეთ შეცდომას

ტექსტი, რომელიც გაეგზავნება ჩვენს რედაქტორებს: