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

24.03.2023

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


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


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


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


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

მოგესალმებით, მეგობრებო! 🙂

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

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

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

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

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

ჯერ ერთი, იმიტომ, რომ ქსელში უკვე არის საკმარისი მასალა ამ თემაზე. მეტიც, მაღალი ხარისხის მასალა, რომელსაც კოპირ-პასტის სურვილით არ ვწვავ.

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

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

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

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

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

თავიდანვე მცირე განმარტება მინდა გავაკეთო.

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

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

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

ამიტომ, ამ მოქმედებების ბრძანებები ოდნავ განსხვავებული იქნება.

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

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

mysqldump -u მომხმარებლის სახელი -p database_name > path_and_dump_file_name

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

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

mysqldump -u მომხმარებლის სახელი -p --ყველა-მონაცემთა ბაზა > path_and_dump_file_name

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

mysqldump -u მომხმარებლის სახელი -p -- მონაცემთა ბაზები database_name1, database_name2, ... > path_and_dump_file_name

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

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

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

MySQL ცხრილის გადაყრა და მონაცემების ექსპორტი

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

mysqldump -u მომხმარებლის სახელი -p database_name table_name1, table_name2, ... > path_and_dump_file_name

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

mysqldump -u მომხმარებლის სახელი -p -- მონაცემთა ბაზები database_name1, database_name2 --tables table_name1, table_name2, ... > path_and_dump_file_name

ზემოთ მოცემულ მაგალითში გამოჩნდება შემდეგი შეცდომა:

Mysqldump: მივიღე შეცდომა: 1049: უცნობი მონაცემთა ბაზა "database_name1", მონაცემთა ბაზის არჩევისას

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

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

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

კომუნალური სერვისის დარეკვის ვარიანტი დაგვეხმარება ჩვენი მიზნების მიღწევაში. mysqlკონსოლიდან გარკვეული პარამეტრებით:

Mysql -u მომხმარებლის სახელი -p database_name -e "SELECT * FROM table_name"

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

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

Mysql -u მომხმარებლის სახელი -p -e "SELECT * FROM tablename" > path_and_filename

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

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

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

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

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

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

სარეზერვო ასლისთვის, ჩვენ გვჭირდება იგივე პროგრამა mysqldump, რომელსაც ასე უნდა ეწოდოს:

Mysqldump -u მომხმარებლის სახელი -p dbname table_name --where "lookup" > path_and_dump_file_name

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

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

Mysql -u მომხმარებლის სახელი -p -e "SELECT * FROM table_name WHERE lookup" > path_and_file_name

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

ნებისმიერი სტატისტიკის შეგროვება შესაძლებელია 🙂

იგივე ქმედება ასევე შეიძლება შესრულდეს MySQL ბრძანების ხაზიდან შემდეგი ბრძანებით:

SELECT * FROM database_table WHERE lookup INTO OUTFILE "path_and_file_name";

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

თუ ეს თქვენი საქმეა, მაშინ შეგიძლიათ იპოვოთ ამ ბრძანების გამოძახების პარამეტრებისა და ვარიანტების სრული სია აქ - https://dev.mysql.com/doc/refman/5.7/en/select-into.html

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

mysqldump -u მომხმარებლის სახელი -h MySQL_server_host_or_IP -p --no-autocommit --opt database_name > path_and_dump_file_name;

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

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

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

მონაცემების ექსპორტი MySQL-დან Excel და csv ფაილებში

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

მოგეხსენებათ, ერთადერთი მნიშვნელოვანი განსხვავება ამ ფორმატებს შორის არის ის, რომ xls და xlsx გაფართოებებს აქვთ ფაილები შექმნილი Microsoft-ის პროგრამაში. Office Excel, რომელიც მუშაობს მხოლოდ Windows-ის ქვეშ, ხოლო csv ფაილები უფრო მრავალმხრივია და მათთან ოპერაციები შესაძლებელია ბევრ რედაქტორში.

ეს არ ნიშნავს, რომ xls არ გაიხსნება არსად გარდა Microsoft Office Excel. იგივე OpenOffice ადასტურებს საპირისპიროს.

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

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

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

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

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

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

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

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

ჩართულია ლინუქსისისტემები:

Mysql -u მომხმარებლის სახელი -d dbname -p -e "SELECT * FROM dbtable;" | sed "s/"/\"/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > path_and_file_name. csv

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

ჩართულია ფანჯრები:

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

დააინსტალირეთ, რა თქმა უნდა, შეგიძლიათ, მაგრამ ძალიან ბევრი პრობლემაა. გარდა ამისა, შეგიძლიათ გამოიყენოთ CygWinარის Linux კონსოლის ემულატორი Windows სისტემებისთვის.

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

მაგრამ xls ფაილში ინფორმაციის ამოღება ისეთივე მარტივია, როგორც 5 კოპეკი 🙂 ძალიან მარტივია მისი გაშვება შემდეგი გზით, რაც მე პირადად ვცადე:

Mysql -u მომხმარებლის სახელი -d dbname -p -e "SELECT * FROM dbtable;" > path_and_file_name.xls

გაიხსნა მოცემული ფაილი Microsoft Office Excel-ში უპრობლემოდ. ერთადერთი ის არის, რომ შეტყობინების გახსნისას ნაჩვენები იყო გაფრთხილება, რომ გახსნილი ფაილის რეალური ფორმატი განსხვავდება მითითებული გაფართოებისგან.

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

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

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

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

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

ისე, იგივე Microsoft Office Excel-მა აჩვენა ცხრილის ერთი ჩანაწერის შესაბამისი ყველა ინფორმაცია, ჩაწერა მას ერთ უჯრედში ყოველგვარი გამყოფების გარეშე. მე ვფიქრობ, რომ ცხრილების სხვა რედაქტორებიც იგივეს გააკეთებენ.

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

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

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

SELECT * FROM database_table INTO OUTFILE "path_and_file_name.csv" ველები, რომლებიც მთავრდება ","" ჩართული """ ხაზებით, რომლებიც მთავრდება "\n"-ით;

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

ეს ბრძანება ასევე შესანიშნავია MySQL მონაცემების xls ფაილში ექსპორტისთვის Microsoft Office Excel-ში სწორი ჩვენებისთვის. მხოლოდ ამ შემთხვევაში, ჩვენ არ გვჭირდება გამყოფები, რადგან ისინი ხელს უშლიან ინფორმაციის უჯრედებად დაყოფას:

SELECT * FROM database_table INTO OUTFILE "path_and_file_name.xls";

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

ERROR 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 გლობალური ცვლადის მნიშვნელობა safe_file_priv, რომელიც შეიცავს საქაღალდისკენ მიმავალ გზას, რომლის მეშვეობითაც შესაძლებელია MySQL მონაცემთა ექსპორტისა და იმპორტის ოპერაციების შესრულება (მომავალში მონაცემთა იმპორტის შესახებ სტატიის ბმული).

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

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

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

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

SET variable_name = მნიშვნელობა;

შედეგად, კონსოლში ვნახე მხოლოდ შემდეგი შეცდომა:

შეცდომა 1238 (HY000) სტრიქონზე 1: ცვლადი "secure_file_priv" არის მხოლოდ წასაკითხი ცვლადი.

და ბოლოს, ცვლადის მნიშვნელობის შეცვლა safe_file_privდა გახსენით ექსპორტისა და იმპორტის ოპერაციები, მე მჭირდებოდა MySQL კონფიგურაციის ფაილში mysql.ini, რომელიც მდებარეობს MySQL განაწილების ძირეულ დირექტორიაში, ან შეიძლება სხვა გზით წვდომა, თუ MySQL შედის თქვენს WAMP/LAMP/-ში. MAMP სერვერის აშენება.

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

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

safe-file-priv = "%dprogdir%\\userdata\\temp"

თუ არ გაქვთ, მაშინ დაწერეთ ნულიდან განყოფილებაში (ყოველ შემთხვევაში, მე ის იქ მაქვს განთავსებული).

გავაუქმე კომენტარი და გადავწყვიტე გამომეყენებინა იმ ფორმით, როგორიც იყო დაწერილი. იმათ. MySQL-დან მონაცემების ექსპორტისა და უკან დაბრუნებისას, ჩემი ფაილები ახლა შეინახება დირექტორიაში c:\openserver\userdata\temp\.

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

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

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

აირჩიეთ * database_table-დან OUTFILE-ში "value_secure_file_priv\file_name.csv";

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

მნიშვნელოვანი წერტილი! თუ თქვენ მუშაობთ MySQL-თან Windows-ის ქვეშ, მაშინ არ დაგავიწყდეთ შეცვალოთ "\"-ით "/" ფაილის გზის მითითებისას, წინააღმდეგ შემთხვევაში, შეცდომა --secure-file-privმაინც გააგრძელებს გამოჩენას.

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

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

წარმატებებს გისურვებთ ყველას და მალე გნახავთ! 🙂

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

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

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

თუ თქვენი ნაგავსაყრელი მნიშვნელოვნად არ აღემატება დასაშვებ ზღვარს, შეგიძლიათ გაყოთ იგი რამდენიმე ნაწილად და შემოიტანოთ რამდენიმე უღელტეხილით. ეს გამართლებულია, თუ, მაგალითად, ლიმიტი არის 2 მბ, ხოლო თქვენი მონაცემთა ბაზა არის 5-10 მბ ზომის. გასაგებია, რომ 100MB მონაცემთა ბაზის 50 ნაწილად „გაჭრა“ საკმაოდ შრომატევადი და ძვირადღირებული პროცესია დროის რესურსების თვალსაზრისით.

ამ პრობლემის მოგვარების რამდენიმე ვარიანტი არსებობს.

ვებ სერვერის კონფიგურაციის რედაქტირება

VDS / VPS-ზე ამაში განსაკუთრებული პრობლემები არ არის, თქვენ უბრალოდ უნდა შეასწოროთ კონფიგურაცია. კერძოდ, php.ini-ში გაზარდეთ სერვერზე ატვირთული ფაილების დასაშვები მაქსიმალური მნიშვნელობები, POST მეთოდით გადატანილი ფაილების მაქსიმალური ზომა:

Post_max_size = 2000M upload_max_filesize = 2000M

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

max_execution_time = 32000 max_input_time = 32000

და მხოლოდ იმ შემთხვევაში, შეგიძლიათ გაზარდოთ RAM-ის დასაშვები რაოდენობა:

მეხსიერების_ლიმიტი = 512 მ

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

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

Sypex თვითსაცლელი

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

მრავალი წლის წინ პირველად გამოვიყენე და შევაფასე მისი ყველა შესაძლებლობა და უპირატესობა, შემიძლია უსაფრთხოდ ვუწოდო მას "აუცილებელი". Sypex Dumper არის PHP სერვერის პროგრამა, რომელიც არ საჭიროებს ინსტალაციას. საკმარისია დააკოპიროთ ის, მაგალითად, თქვენი საიტის root-ზე sxd დირექტორიაში და ბრაუზერში დარეკოთ: http://Your_Site/sxd/. აღსანიშნავია, რომ ჯერ უნდა მოათავსოთ თქვენი მონაცემთა ბაზის ნაგავსაყრელი სარეზერვო დირექტორიაში. სკრიპტის ინიციალიზაციის შემდეგ, თქვენ ნახავთ ავტორიზაციის პანელს მონაცემთა ბაზასთან დასაკავშირებლად. შეიყვანეთ თქვენი შესვლა და პაროლი. ჰოსტი და პორტი არჩევითია მხოლოდ იმ შემთხვევაში, თუ ისინი სპეციფიკურია.

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

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

ეს, ფაქტობრივად, ყველაფერია - მონაცემთა ბაზა იმპორტირებულია!

კონსოლი

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

ბოლოს და ბოლოს

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

მაგრამ საერთო ჰოსტინგის გარემოში, Sydex Dumper ნამდვილად იქნება თქვენი შეუცვლელი ასისტენტი.

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

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

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

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

დიდი MySQL მონაცემთა ბაზების ექსპორტი (ჩატვირთვა) Sypex Dumper-ის საშუალებით

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

"Sypex Dumper" არის PHP-ში დაწერილი პროგრამული პროდუქტი, რომელიც საშუალებას გაძლევთ იმუშაოთ მონაცემთა ბაზებთან phpMyAdmin-ის გამოყენების გარეშე. "Sypex Dumper"-ის უპირატესობები მოიცავს:

  1. მრავალენოვანი (მრავალჯერადი ენის მხარდაჭერა).
  2. არსებობს სკრიპტის უფასო ვერსია (ეს სავსებით საკმარისია ჩვენი ამოცანებისთვის).
  3. დავალების შესრულების მაღალი სიჩქარე.
  4. მუშაობა დიდ მონაცემთა ბაზებთან.
  5. მოსახერხებელი და მკაფიო ინტერფეისი.
  6. და კიდევ ბევრი საინტერესო "ჩიპი".

ჩვენ მათ გამოვიყენებთ დიდი მონაცემთა ბაზების ჩამოსატვირთად (გადასატანად).

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

1. უფასო ჩვენი საიტიდან.

2. sxdთქვენთვის მოსახერხებელი გზით.

3. შემდეგი, გადადით (სად your_site.com Შემოსვლა».

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


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

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


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

ეს ასრულებს მონაცემთა ბაზის ექსპორტს (ჩამოტვირთვას).

დიდი MySQL მონაცემთა ბაზების იმპორტი (ჩატვირთვა) Sypex Dumper-ის საშუალებით

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

1. უფასო ჩვენი საიტიდან.

2. გახსენით არქივი და ატვირთეთ საქაღალდე საიტზე sxdთქვენთვის მოსახერხებელი გზით.

3. საქაღალდეში /sxd/სარეზერვო/ჩატვირთეთ ადრე მიღებული (ჩამოტვირთული) მონაცემთა ბაზა.

4. შემდეგ გადადით http://your_site.ru/sxd/index.php(სად your_site.com– თქვენი საიტის დომენი), რის შემდეგაც თქვენს წინაშე გაიხსნება მონაცემთა შეყვანის ფორმა. მასში თქვენ მიუთითებთ მომხმარებლის მონაცემებს, რომელსაც აქვს უფლება მართოს თქვენთვის საჭირო მონაცემთა ბაზა და დააწკაპუნეთ " Შემოსვლა».

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


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

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


დიდი MySQL მონაცემთა ბაზების ექსპორტი (ჩამოტვირთვა) SSH ტერმინალის საშუალებით

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

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

1. ჩვენ ვიწყებთ ტერმინალს. მასზე ასე გამოიყურება:


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

მეორე- ეს:

mysqldump -u USERNAME -p DATABASE > backup.sql

უშუალოდ ექსპორტი, სადაც:

USERNAME– მომხმარებლის შესვლა, რომელსაც აქვს წვდომა მონაცემთა ბაზაზე.

ᲛᲝᲜᲐᲪᲔᲛᲗᲐ ᲑᲐᲖᲐ– მონაცემთა ბაზის სახელი, რომლის ექსპორტი გვინდა.

backup.sql– ფაილის სახელი, სადაც შეინახება მონაცემთა ბაზა და გზა . ამ დიზაინით, მონაცემთა ბაზა შეინახება ჰოსტინგის root-ში.

4. მესამე საფეხურზეშედი"კლავიატურაზე. შენიშვნა

მას შემდეგ, რაც სერვერი მზად იქნება კვლავ მიიღოს ბრძანებები SSH-ის საშუალებით, ეს ნიშნავს, რომ მონაცემთა ბაზის ექსპორტი დასრულებულია და შეგიძლიათ გადმოწეროთ FTP-ით ან ჰოსტინგის ფაილ მენეჯერის მეშვეობით.

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

დიდი MySQL მონაცემთა ბაზების იმპორტი (ატვირთვა) SSH ტერმინალის საშუალებით

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

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

2. დაუკავშირდით თქვენს ჰოსტინგს/სერვერს SSH-ის საშუალებით.

ასე რომ, ჩვენ აუცილებლად მივდივართ ჰოსტინგის ფესვზე და მეორე- ეს:

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

4. თუ ყველაფერი კარგადაა და ბაზა ადგილზეა, შეიყვანეთ საბოლოო ბრძანება:

mysql -u USERNAME -p მონაცემთა ბაზა< backup.sql

USERNAME– მომხმარებლის შესვლა, რომელსაც აქვს წვდომა მონაცემთა ბაზაზე.

ᲛᲝᲜᲐᲪᲔᲛᲗᲐ ᲑᲐᲖᲐ– მონაცემთა ბაზის დასახელება, რომელშიც ჩვენ შემოვიტანთ მონაცემებს.

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

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

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

კარგი დღე, კოლეგებო 🙂

დღეს გავაგრძელებ MySQL-თან მუშაობის გაცნობას 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-ში:

Source path_and_dump_filename;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

mysqlimport -u მომხმარებლის სახელი -p database_name name_and_path_to_import_file

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

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

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

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

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

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

Mysqlimport -u მომხმარებლის სახელი -p database_name --სვეტები სვეტი1, სვეტი2, ... import_file_name and_path

ბუნებრივია, ჩემს მაგალითებში არ განვიხილე 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, ღია კარტი,