იმპორტი mysql მონაცემთა ბაზები. მონაცემთა ბაზის ექსპორტი და იმპორტი PHPMyAdmin-ში

24.03.2023

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


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


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


. გადადით იმპორტის მენიუში.


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

ყველაფრის დაბრუნება შეგიძლია. ამით გემშვიდობები და მალე გნახავ.

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

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

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

თუ გჭირდებათ ინსტრუქციები phpMyAdmin-ის საშუალებით მონაცემთა ბაზის იმპორტისთვის, შეგიძლიათ იპოვოთ ის სტატიაში. მიმდინარე სტატიაში მე არ მსურს ამის კიდევ ერთხელ აღწერა, მით უმეტეს, რომ დღევანდელი მასალა დაეთმობა ექსკლუზიურად MySQL მონაცემთა ბაზის იმპორტს კონსოლის საშუალებით.

მაგრამ, სანამ დავიწყებთ მეთოდებისა და ინსტრუმენტების განხილვას, რამდენიმე სიტყვა იმის შესახებ, თუ რა არის MySQL მონაცემთა ბაზის იმპორტი, როგორია და როგორ უნდა გავაკეთოთ ეს საუკეთესოდ?

MySQL მონაცემთა ბაზის იმპორტი: რა და რატომ?

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

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

  1. მონაცემთა ბაზის სტრუქტურა, მისი ცხრილები და მათში შენახული მონაცემები (ჩვეულებრივ, მონაცემთა ბაზის ნაგავსაყრელს უწოდებენ);
  2. უბრალოდ მონაცემები ინახება ცხრილში ან შეგროვებული გამოყენებით აირჩიეთითხოვს.

ეს სტატია განიხილავს ორივე ვარიანტს.

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

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

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

ამ მიზნებისათვის, ჩვეულებრივი ასევე შესაფერისია. txt ფაილი, მონაცემები, რომლებშიც გაიყოფა, ან სპეციალურად შექმნილი ფაილები ცხრილების რედაქტორები (Microsoft Office Excel, OpenOffice და ა.შ.) შესანიშნავი გაფართოებით: xls, csv, odt და ა.შ.

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

მონაცემთა დამატება MySQL-ში: ინსტრუმენტები

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

მე ჩამოვთვლი მათ, დაწყებული ყველაზე დაბალი დონიდან და დამთავრებული უმაღლესი დონით (ყველა სახის ჭურვისა და დანამატის გამოყენების თვალსაზრისით):

  1. სერვერის კონსოლი და MySQL ბრძანების ხაზი;
  2. პროგრამირების ენებზე დაწერილი სკრიპტები, რომლებიც საშუალებას გაძლევთ ჩაწეროთ მონაცემები MySQL-ში ენობრივი ხელსაწყოების გამოყენებით;
  3. მზა პროგრამები, რომლებიც უზრუნველყოფენ მონაცემთა ბაზასთან მუშაობის ვიზუალურ ინტერფეისს (იგივე phpMyAdmin, MySQL WorkBench, MySQL Manager და ა.შ.).

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

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

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

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

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

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

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

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

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

როგორ აღვადგინოთ MySQL მონაცემთა ბაზა ნაგავსაყრელიდან კონსოლის საშუალებით?

ასე რომ, იმისათვის, რომ განათავსოთ MySQL ნაგავსაყრელი კონსოლიდან, არსებობს ორი გზა:

  1. ბრძანების გამოყენებით ბრძანების ხაზი MySQL;
  2. თავად სერვერის კონსოლში.

დავიწყოთ თანმიმდევრობით.

ასე რომ, იმისათვის, რომ MySQL მონაცემთა ბაზის ნაგავსაყრელი შემოვიტანოთ არსებულ საცავში , ჩვენ ჯერ უნდა გავუშვათ იგი და შევარჩიოთ სასურველი მონაცემთა ბაზა, რომელშიც ავტვირთავთ ჩვენს ნაგავსაყრელს.

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

მას შემდეგ რაც გააკეთებთ ზემოთ, შეიყვანეთ შემდეგი ბრძანება MySQL Shell-ში:

წყაროს გზა_და_დუმპ_ფაილის_სახელი;

ჩვენთვის რჩება მხოლოდ კონსოლში შეტყობინებების შესწავლა ნაგავსაყრელში შემავალი ოპერაციების პროგრესის შესახებ.

სასურველ მონაცემთა ბაზაზე წინასწარ გადასვლის გარეშე, კონსოლში MySQL სერვერთან დაკავშირების შემდეგ, ნაგავსაყრელის იმპორტი შეიძლება შემდეგი ბრძანებით:

Mysql -u მომხმარებლის სახელი -p database_name< путь_и_имя_файла_дампа

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

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

თუ ნაგავსაყრელი ფაილი შეფუთულია არქივში, მაშინ ჩამოტვირთვისას მისი ერთდროულად ამოღება დაგჭირდებათ.

Linux-ზე ეს შეიძლება გაკეთდეს ასე:

Gunzip > [archive_file_name.sql.gz] | mysql -u -p

IN Windows სტანდარტიკონსოლში არქივის ამოსახსნელად არ არის უტილიტა, ამიტომ მისი დამატებით ინსტალაცია დაგჭირდებათ.

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

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

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

მონაცემთა ჩატვირთვა MySQL მონაცემთა ბაზაში კონსოლში არსებული ფაილიდან

ჩვენ ვისაუბრეთ MySQL მონაცემთა ბაზის აღდგენაზე კონსოლის ნაგავსაყრელიდან. ახლა დროა გაერკვნენ, თუ როგორ შეგიძლიათ ანალოგიურად შემოიტანოთ მონაცემები ფაილებიდან, xls და csv ჩათვლით, MySQL მონაცემთა ბაზაში.

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

დავიწყოთ განხილვა ისევ თანმიმდევრობით.

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

ჩატვირთეთ მონაცემთა INFILE "path_and_name_of_dump_file" TABLE `მონაცემთა_ცხრილის` სვეტებში, რომლებიც მთავრდება "\"-ით შეწყვეტილი "\"" ხაზებით, რომლებიც მთავრდება "\n"-ით;

არ დაგავიწყდეთ, რომ თუ MySQL სერვერი დაიწყო პარამეტრით --secure-file-priv(რაც ხშირად ხდება WAMP/MAMP ასამბლეებში შემავალი MySQL დისტრიბუციების გამოყენებისას), მაშინ ფაილის სახელი უნდა იყოს მითითებული სისტემის ცვლადის გათვალისწინებით. safe_file_priv.

MySQL მონაცემთა ბაზის იმპორტისთვის სერვერის კონსოლში MySQL Shell-ში შესვლის გარეშე, ჩვენ დაგვჭირდება პროგრამა mysqlimport, შედის MySQL დისტრიბუციაში და მისი შემდეგი ზარი:

mysqlimport –u user_name –p database_name name_and_path_to_import_file

ეს პროგრამა არის SQL ბრძანების ანალოგი ჩატვირთეთ მონაცემთა INFILE, მხოლოდ ბრძანების ხაზისთვის. მაგრამ, ჩნდება კითხვა, რატომ მაშინ, მისი მოწოდების პარამეტრებს შორის, არ არის ცხრილი, რომელშიც ჩაიტვირთება ფაილიდან მონაცემები?

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

იმათ. თუ გსურთ Excel ცხრილის იმპორტი MySQL ცხრილში მომხმარებლები, მაშინ თქვენი ფაილი უნდა გამოიძახოთ users.xls.

იმპორტირებული ფაილის გაფართოება, როგორც უკვე აღვნიშნეთ, შეიძლება იყოს ნებისმიერი.

mysqlimport-ით ასევე შეგიძლიათ ჩატვირთოთ რამდენიმე xls ან csv ფაილი MySQL-ში ერთდროულად. იმისთვის, რომ მონაცემებმა მიაღწიონ დანიშნულების ადგილს, ასევე უნდა ემთხვეოდეს ფაილების და მონაცემთა ბაზის ცხრილების სახელები, როგორც წინა მაგალითში.

თუ მოულოდნელად იმპორტირებულ ფაილში სვეტები არ არის იმავე თანმიმდევრობით, როგორც ბაზის ცხრილის სვეტები, მაშინ მათი თანმიმდევრობის გასარკვევად თქვენ უნდა გამოიყენოთ —columns ვარიანტი შემდეგი ფორმით:

Mysqlimport –u user_name –p database_name --სვეტები სვეტი1, სვეტი2, ... name_and_path_to_import_file

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

თუ გსურთ გაეცნოთ მათ, მათი სრული სია ხელმისაწვდომია აქ - https://dev.mysql.com/doc/refman/5.7/en/mysqlimport.html

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

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

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

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

1. გახსენით dump ფაილი (სასურველია შიგნით ფაილის მენეჯერები, იმიტომ ჩვეულებრივ რედაქტორებს შეუძლიათ უბრალოდ გადაიტვირთონ დიდი ფაილები).

2. დაწერეთ შემდეგი სტრიქონები ფაილის დასაწყისში:

უცხოური_გასაღების_შემოწმების დაყენება = 0; SET UNIQUE_CHECKS = 0; SET AUTOCOMMIT = 0;

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

3. ფაილის ბოლოს ვწერთ საპირისპირო მოქმედებებს:

უცხოური_გასაღების_შემოწმების დაყენება = 1; SET UNIQUE_CHECKS = 1; SET AUTOCOMMIT = 1;

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

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

ჩამოაგდეს ცხრილი, თუ არსებობს `კლიენტები`; შექმენით მაგიდა `კლიენტები` (...);

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

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

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

MySQL მონაცემთა ბაზაში და სხვა ფაილებში csv-ის იმპორტის ფუნქციები

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

უფრო მეტიც, წინა სიტუაციისგან განსხვავებით, ამ შემთხვევაში ფაილში დირექტივების ჩაწერა შეუძლებელი იქნება, რადგან მასში SQL ბრძანებები არ მიიღება და შესრულდება.

წინა სტატიაში MySQL მონაცემთა ბაზის ექსპორტის შესახებ, მე უკვე აღვნიშნე, თუ როგორ უნდა გავაკეთოთ ეს MySQL ბრძანების სტრიქონზე შემდეგი ოპერაციის გამოყენებით:

SET FOREIGN_KEY_CHECKS=0;

თუმცა, მე არ მიხსენებია, რომ MySQL სისტემის ცვლადი FOREIGN_KEY_CHECKSაქვს ორი მნიშვნელობა: გლობალური და სესიური (მიმდინარე სესიისთვის).

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

MySQL სისტემის ცვლადის სესიის მნიშვნელობა დაყენებულია მხოლოდ MySQL სერვერთან მომხმარებლის სესიის ხანგრძლივობისთვის. სესია ან სესია იწყება, როდესაც კლიენტი უკავშირდება სერვერს, რა დროსაც მას ენიჭება უნიკალური კავშირის ID, და მთავრდება სერვერთან გათიშვისას, რაც შეიძლება მოხდეს ნებისმიერ დროს (მაგალითად, დროის ამოწურვის გამო).

რატომ გადავწყვიტე ამის გახსენება?

იმის გამო, რომ ბრძანებების შესრულებისას ფაილის ჩატვირთვის MySQL მონაცემთა ბაზაში სერვერის კონსოლის მეშვეობით, MySQL Shell-ში შესვლის გარეშე, აღმოვაჩინე, რომ უცხოური გასაღების შემოწმების გამორთვა ადრე აღწერილი მეთოდით არ მუშაობს.

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

და ეს წარმოიშვა იმ მიზეზით, რომ ზემოხსენებულმა ბრძანებამ გამორთო სესიის ფარგლებში უცხო კლავიშების არსებობის შემოწმება და არა გლობალურად, რაც, გარდა ამისა, მითითებულ მეთოდს, ასევე შეიძლება გაკეთდეს შემდეგნაირად:

SET SESSION ცვლადის_სახელი = ცვლადის_მნიშვნელობა; SET @@session.variable_name = variable_value; SET @@variable_name = ცვლადის_მნიშვნელობა;

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

და, რადგან მე ვტვირთავდი csv ფაილს MySQL ცხრილში სერვერის კონსოლის მეშვეობით, MySQL სერვერთან პირდაპირი კავშირის გარეშე, არ შეიქმნა სესია, რომლის ფარგლებშიც იმუშავებდა ჩემი სესიის ცვლადი მნიშვნელობა.

საბოლოოდ დავაყენე FOREIGN_KEY_CHECKS გლობალურზე და იმპორტი წარმატებული იყო.

ამის გაკეთება შეგიძლიათ ერთ-ერთი შემდეგი გზით:

SET GLOBAL ცვლადის_სახელი = ცვლადის_მნიშვნელობა; SET @@global.variable_name = variable_value;

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

აირჩიეთ @@GLOBAL.foreign_key_checks, @@SESSION.foreign_key_checks;

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

ისევ გნახავ! 🙂

P.S.: თუ გჭირდებათ ვებგვერდი ან გჭირდებათ ცვლილებების შეტანა უკვე არსებულში, მაგრამ ამის დრო ან სურვილი არ არის, შემიძლია შემოგთავაზოთ ჩემი მომსახურება.

5 წელზე მეტი გამოცდილება პროფესიული განვითარებასაიტები. მუშაობა PHP, OpenCart,

საიტის მიგრაციისას ლოკალური სერვერიჰოსტინგისთვის ერთ-ერთი სავალდებულო პროცედურაა ბაზის (მონაცემთა ბაზის) ექსპორტი/იმპორტი. ამიტომ, ამ სტატიაში შევეცდები რაც შეიძლება დეტალურად აღვწერო მონაცემთა ბაზის ადგილობრივი სერვერიდან, ანუ ვებ ინტერფეისიდან ექსპორტის და იმპორტის პროცესი. PHPMyAdminვერსია 3.2.3 ჰოსტინგისთვის.

პირველი, რაც უნდა გააკეთოთ, არის ლოკალური სერვერის გაშვება, ამ შემთხვევაში Denwer. Denwer-ის გაშვების შემდეგ, თქვენ უნდა გახსნათ თქვენი ბრაუზერი და შეიყვანოთ ბრაუზერის ხაზში: „http://localhost/tools/phpmyadmin“, რის შემდეგაც ფანჯარა გაიხსნება თქვენს წინაშე.(ნახ.1)ადრე შექმნილთან ერთად მონაცემთა ბაზები.

ნახ.1

შემდეგი, ჩვენ უნდა ავირჩიოთ მონაცემთა ბაზა, რომელსაც ჩვენ ექსპორტს გავაკეთებთ, ჩემს შემთხვევაში ეს არის მონაცემთა ბაზა სახელწოდებით Mybd. თქვენ შეგიძლიათ აირჩიოთ მონაცემთა ბაზა მასზე დაწკაპუნებით ბრაუზერის ფანჯრის მარცხენა მხარეს, სადაც ნათქვამია „გთხოვთ აირჩიოთ მონაცემთა ბაზა“ (ნახ. 2).


ნახ.2

სასურველი მონაცემთა ბაზის არჩევის შემდეგ გაიხსნება ფანჯარა მონაცემთა ბაზის სტრუქტურით. IN ზედა მენიუარის წერტილი "ექსპორტი"რომლის დახმარებით ჩვენ მონაცემთა ბაზის ექსპორტს მოვახდენთ კომპიუტერში და შემდეგ შემოვიტანთ მას ჰოსტინგში. ასე რომ, გადადით "ექსპორტის" პუნქტზე (ნახ.3).


ნახ.3

ფანჯარაში, რომელიც იხსნება, თქვენ უნდა გააკეთოთ გარკვეული გაზომვები (ნახ.4), კერძოდ: "ექსპორტის" ბლოკში თქვენ უნდა აირჩიოთ მონაცემთა ბაზის ყველა ცხრილი პუნქტზე დაწკაპუნებით "აირჩიე ყველა"და შეამოწმეთ ყუთი ნივთის გვერდით ექსპორტი და ასევე მიუთითეთ ფორმატში, ეს ელემენტი პასუხისმგებელია ფაილის ტიპზე, რომელიც იქნება ექსპორტირებული. ასევე, თქვენ უნდა მონიშნოთ გვერდის ველი "შენახვა როგორც ფაილი", რომელიც უზრუნველყოფს მონაცემთა ბაზის ფაილში შენახვას. არ არის საჭირო სხვა პარამეტრების შეცვლა, უბრალოდ დააჭირეთ ღილაკს "წადი".

ნახ.4

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

ასევე, თქვენ უნდა შეცვალოთ ფაილის კოდირება UTF-8-ზე BOM-ის გარეშე, რათა შეცვალოთ კოდირება, რომელსაც მე ვიყენებ ტექსტის რედაქტორი Notepad ++(ჩამოტვირთვა). ამ პროგრამის გამოყენებით თქვენ ხსნით მონაცემთა ბაზის ფაილს და მენიუში "დაშიფვრა"აირჩიე "კონვერტირება UTF-8-ზე BOM-ის გარეშე" (ნახ. 5), შემდეგ შეინახეთ და დახურეთ.


ნახ.5

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

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

ნაბიჯი 1

პირველი რაც თქვენ უნდა გააკეთოთ არის ექსპორტის მონაცემთა ბაზათქვენი ამჟამინდელი მდებარეობიდან (კონკრეტულად ლოკალური სერვერიდან). ჩვენი მიზანია მივიღოთ SQL შეკითხვაჩვენი მონაცემთა ბაზა. ამისათვის თქვენ უნდა გააკეთოთ შემდეგი:

ნაბიჯი 2

მეორე და ბოლო ნაბიჯი არის ამის გაკეთება SQL შეკითხვა, რომელიც თქვენ დააკოპირეთ, რომ PHPMyAdmin, რომელიც მდებარეობს სერვერზე, სადაც გჭირდებათ მონაცემთა იმპორტი. ამისათვის მიჰყევით ამ ნაბიჯებს:

შედეგად, ყველა თქვენი ცხრილი ყველა ჩანაწერით შეიქმნება ახალ სერვერზე.

როგორც ხედავთ, პროცესი მონაცემთა ბაზის ექსპორტი და იმპორტი PHPMyAdmin-შიგამარტივებულია მინიმუმამდე, ასე რომ პრობლემები არ იქნება.

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

ეს პროცედურა გულისხმობს მონაცემთა გადაცემას ერთი მონაცემთა ბაზიდან (A) მეორეზე (B). როგორც წესი, მონაცემთა ბაზა B მდებარეობს ჰოსტინგზე (ან დენვერში), ხოლო მონაცემთა ბაზა A განთავსებულია მომხმარებლის კომპიუტერში და არის ფაილი sql გაფართოებით. მონაცემთა ბაზა A-ს სხვა სახელი აქვს - Dump.

როგორ შემოვიტანოთ მონაცემთა ბაზა?

MySQL მონაცემთა ბაზის იმპორტი SSH-ის გამოყენებით

ეს მეთოდი საკმაოდ იშვიათად გამოიყენება, მაგრამ ჩვენ აღვწერთ მას. პირველ რიგში, შეავსეთ მონაცემთა ბაზა, საიდანაც იგი იმპორტირებული იქნება ჰოსტინგის პროვაიდერის სერვერზე, სადაც ინახება თქვენი საიტის ფაილები. შემდეგი, მონაცემთა ბაზის იმპორტისთვის გამოიყენეთ ბრძანება:

mysql -uUSERNAME -pUSERPASSWORD DBNAME< DUMPFILENAME.sql

mysql --user=USERNAME --პაროლი=USERPASSWORD DBNAME< DUMPFILENAME.sql

დიდი ასოებით დაწერილი სიტყვების ნაცვლად ვცვლით:
USERNAME - მონაცემთა ბაზის მომხმარებლის სახელი, მაგალითად uhosting_databaseuser;

USERPASSWORD - მონაცემთა ბაზის მომხმარებლის პაროლი, მაგალითად Rjkweuik12;

DBNAME - მონაცემთა ბაზის სახელი, რომელშიც განხორციელდება იმპორტი, მაგალითად, uhosting_databasename

DUMPFILENAME - ნაგავსაყრელი ფაილის სახელი, საიდანაც მოხდება მონაცემების იმპორტი. აქ ასევე უნდა მივუთითოთ მონაცემთა ბაზის გზა, რომელიც ავტვირთეთ ჰოსტინგის პროვაიდერის სერვერზე.