MySQL-dən məlumatların ixracı və idxalı. Böyük MySQL verilənlər bazalarını necə ixrac etmək (yükləmək) və idxal etmək (yükləmək) olar? Böyük mysql verilənlər bazalarının idxalı

24.03.2023

Bu prosedur məlumatların bir verilənlər bazasından (A) digərinə (B) ötürülməsini nəzərdə tutur. Bir qayda olaraq, B verilənlər bazası (və ya Denver) yerləşdirilir, A verilənlər bazası isə istifadəçinin kompüterində yerləşir və sql uzantılı fayldır. A verilənlər bazasının başqa adı var - Dump.

Verilənlər bazasını necə idxal etmək olar?

SSH istifadə edərək MySQL verilənlər bazasının idxalı

Bu üsul olduqca nadir hallarda istifadə olunur, lakin biz onu təsvir edəcəyik. Əvvəlcə sayt fayllarınızın saxlandığı hosting provayderinin serverinə idxalın aparılacağı verilənlər bazasını doldurun. Verilənlər bazasını idxal etmək üçün aşağıdakı əmrdən istifadə olunur:

mysql -uUSERNAME -pUSERPASSWORD DBNAME< DUMPFILENAME.sql

mysql --user=USERNAME --password=USERPASSWORD DBNAME< DUMPFILENAME.sql

Böyük hərflərlə yazılan sözlərin əvəzinə aşağıdakıları əvəz edirik:
USERNAME - verilənlər bazası istifadəçi adı, məsələn, uhosting_databaseuser;

USERPASSWORD - verilənlər bazası istifadəçi parolu, məsələn Rjkweuik12;

DBNAME - idxal ediləcək verilənlər bazasının adı, məsələn, uhosting_databasename

DUMPFILENAME - verilənlərin idxal ediləcəyi dump faylının adı. Burada hostinq provayderinin serverinə yüklədiyimiz verilənlər bazasına gedən yolu da göstərməlisiniz.

Salam, dostlar! 🙂

Bu gün konsolda MySQL ilə işləmək haqqında danışmağa davam etmək və MySQL verilənlər bazasını ixrac etmək proseduruna diqqət yetirmək qərarına gəldim.

Məqalədə zibilin necə ediləcəyi barədə danışacağam MySQL verilənlər bazası, həmçinin MySQL-dən məlumatları yükləyin excel faylı və csv formatı.

Məlumat çıxarmağın müxtəlif variantlarını nəzərdən keçirəcəyik: bir və bir neçə verilənlər bazası zibilinin yaradılması, ayrı-ayrı cədvəllərdən məlumatların ixracı və ixtiyari nəticələrin SEÇİN istək.

Həm də MySQL verilənlər bazasından verilənlərin server konsolunda və MySQL komanda xəttində necə göstəriləcəyi barədə danışaq.

Bu yazıda məlumatları necə ixrac etmək barədə danışmayacağam phpMyAdmin istifadə edərək və digər vizual alətlər.

Birincisi, çünki bu mövzuda şəbəkədə kifayət qədər material var. Üstəlik, kopyala-yapışdırmaq istəyi ilə yandırmadığım yüksək keyfiyyətli material.

İkincisi, mən özüm haqqında bəhs etdiyim məqalələrimin birində MySQL verilənlər bazasından SQL faylına məlumatın çıxarılması prosesini qısaca nəzərdən keçirdim.

Beləliklə, əgər siz konsolla işləmək haqqında faydalı məlumat tapa biləcək peşəkar tərtibatçı və ya sistem administratoru deyilsinizsə və yalnız verilənlər bazasını phpMyAdmin-ə ixrac etmək üçün təlimat almaq üçün gəlmisinizsə, o zaman yuxarıdakı linkdən məlumatları oxumaqla məhdudlaşa bilərsiniz.

Məni düzgün başa düşməyinizi istəyirəm: sizi heç bir şəkildə incitmək istəmirəm, sadəcə olaraq, vaxtınızı səbəb üçün maksimum fayda ilə keçirməyinizi və axtardığınızı əldə etməyinizi istəyirəm.

Bu, giriş hissəsini yekunlaşdırır və biz MySQL verilənlər bazası zibilini yaratmaq üçün konsol əmrlərinin icmalına keçirik, onu saxlanan məlumatların miqdarına görə çeşidləmək qərarına gəldim: bütün verilənlər bazasını ixrac etməkdən tutmuş fərdi cədvəllərə və ixtiyari sorğuların nəticələrinə .

Konsol vasitəsilə MySQL verilənlər bazası zibilinin yaradılması

Əvvəlcə kiçik bir aydınlıq gətirmək istəyirəm.

Baza zibilxanası işə salındıqda verilənlər bazası və cədvəllər yaratmağa, həmçinin onları informasiya ilə doldurmağa imkan verən SQL əmrləri toplusuna malik fayldır. MySQL verilənlər bazasını başqa bir serverə və ya mövcud serverə köçürmək üçün yükləmək istəyənlər üçün dump lazımdır.

Həmçinin, əgər kimsə məlumatlı deyilsə, MySQL verilənlər bazası ehtiyat nüsxəsi, əslində, müəyyən bir müddət ərzində onun tullantısıdır ki, bu da lazım olduqda verilənlər bazası strukturunu və məlumatları bərpa etməyə imkan verir.

Məlumat ixracı- bu, sadəcə mətn və ya qrafik redaktorlarla sonrakı iş üçün mətn şəklində cədvəllərdən məlumatın çıxarılmasıdır.

Buna görə də, bu hərəkətlər üçün əmrlər bir az fərqli olacaq.

Verilənlər bazası zibilini yaratmaq üçün MySQL adlı daxili yardım proqramı var mysqldump, server konsolunda və ya digər qabıqda MySQL əmr sətirindən kənarda istifadə ediləcək.

Beləliklə, ən sadə və ən çox yayılmış seçim üçün - başqa bir serverə və ya daxili nüsxəyə ötürmək üçün MySQL konsolunda xüsusi verilənlər bazasından məlumatları ixrac etmək üçün aşağıdakı əmri yerinə yetirməlisiniz:

mysqldump -u istifadəçi adı -p verilənlər bazası_adı > yol_və_dump_fayl_adı

Bu yardım proqramı MySQL verilənlər bazası zibillərini yalnız SQL əmrləri olan fayllar şəklində yarada bilər, ona görə də faylınız üçün hansı uzantı seçsəniz, istənilən halda onun məzmunu eyni olacaq. MySQL-dən məlumat ixrac etməzdən əvvəl onun yerləşəcəyi kataloqun yazma icazələrini yoxlamağı unutmayın ki, faylın yaradılması mümkün olsun.

Birdən serverdəki bütün verilənlər bazası ilə zibil etmək lazımdırsa, aşağıdakı əmr seçimindən istifadə edin:

mysqldump -u istifadəçi adı -p --all-databases > path_and_dump_file_name

Yalnız bir neçə xüsusi verilənlər bazasını boşaltmaq üçün aşağıdakı seçimlərlə mysqldump-a zəng etməlisiniz:

mysqldump -u istifadəçi adı -p - verilənlər bazası verilənlər bazası_adı1, verilənlər bazası_adı2, ... > yol_və_dump_fayl_adı

Nəticədə, hər bir halda siz daxil olan cədvəllərin strukturunu (sahələr, onların növləri, indekslər, açarlar və s.) Yaratmaq üçün əmrləri, habelə onların məlumatlarla doldurulması əməliyyatlarını ehtiva edən MySQL verilənlər bazası zibilini alacaqsınız.

Bu seçim yalnız bütün verilənlər bazalarını bərpa etmək və kopyalamaq üçün uyğundur.

Müəyyən MySQL cədvəllərinin ehtiyat nüsxələrini necə çıxarmaq və onların məlumatlarını oxunaqlı formada əldə etmək daha sonra müzakirə olunacaq.

MySQL cədvəlinin boşaldılması və məlumatların ixracı

Müəyyən MySQL verilənlər bazası cədvəllərinin zibilini yaratmaq üçün bizə eyni yardım proqramı lazımdır mysqldump, aşağıdakı parametrlərlə çağırılır:

mysqldump -u istifadəçi adı -p verilənlər bazası_adı cədvəl_adı1, cədvəl_adı2, ... > yol_və_dump_fayl_adı

Hətta mysqldump-a zəng edərkən lazım olan cədvəlləri parametr dəyəri kimi təyin edə bilərsiniz --masalar, hansı parametrdən istifadə edərkən --verilənlər bazaları nəzərə alınmayacaq:

mysqldump -u istifadəçi adı -p - verilənlər bazası verilənlər bazası_adı1, verilənlər bazası_adı2 --cədvəllər cədvəl_adı1, cədvəl_adı2, ... > yol_və_dump_fayl_adı

Yuxarıdakı nümunə aşağıdakı səhvi göstərəcək:

Mysqldump: Səhv alındı: 1049: Verilənlər bazasını seçərkən naməlum verilənlər bazası "database_name1"

Gördüyünüz kimi, qeyd olunanların siyahısından yalnız ən son verilənlər bazası istifadə olunacaq. Prinsipcə, bu davranış olduqca məntiqlidir, çünki. bütün verilənlər bazalarında göstərilən cədvəllər olmaya bilər.

Yaxşı, bizdə MySQL verilənlər bazası cədvəllərinin zibilliyi var. Onları bərpa etmək və ya strukturla birlikdə kopyalamaq üçün istifadə edilə bilər.

Bəs sadəcə olaraq onlarda saxlanan məlumatları və daha yaxşısı oxunaqlı formada əldə etmək lazımdırsa, onu menecerə göndərə və adi mətn və ya cədvəl redaktorunda görə biləsən? MySQL-də bunun üçün alətlər də var.

Kommunal xidmətə zəng etmək seçimi məqsədlərimizə çatmağa kömək edəcək. mysql müəyyən parametrlərlə konsoldan:

Mysql -u istifadəçi adı -p verilənlər bazası_adı -e "Cədvəl_adından * SEÇİN"

Bu əmr bizə lazım olan verilənlər bazasına sorğu yerinə yetirməyə və nəticəni daxil olmadan konsolda göstərməyə imkan verəcək. komanda xətti MySQL.

Yaxşı, məlumatları konsola çıxarmaq deyil, onları fayla yazmaq üçün əmri aşağıdakı kimi əlavə etməlisiniz:

Mysql -u istifadəçi adı -p -e "Cədvəl adından * SEÇİN" > yol_və fayl adı

Bu konstruksiyalar sayəsində biz təkcə cədvəlin bütün sahələrində deyil, həm də konkret sahələrində saxlanılan məlumatları əldə edə bilirik. Bunun üçün joker simvollar (*) simvolu əvəzinə vergüllə ayrılmış tələb olunanları qeyd etmək kifayətdir.

Nəticədə, çıxışda başlıq şəklində sahələrin adlarını və bütün qeydlər üçün onlar haqqında məlumatları ehtiva edən adi mətn faylı alacağıq. Yaradarkən hansı qətnamə verdiyinizdən asılı olmayaraq, onu adi mətn redaktorunda açmaq olar.

MySQL verilənlər bazasından məlumatları xls və ya csv formatında ixrac etmək istəyirsinizsə, nəticədə əldə olunan fayl elektron cədvəl redaktorlarında düzgün göstərilsin, bunun necə ediləcəyi bir az sonra müzakirə olunacaq 🙂

Sorğulardan istifadə edərək MySQL verilənlər bazasından ehtiyat nüsxələrin yaradılması və məlumatların çıxarılması

MySQL verilənlər bazasını necə boşaltmaq barədə danışdıq - bir və bir neçə, eləcə də onların fərdi cədvəlləri. Ancaq bəzən praktikada bir cədvəllə məhdudlaşmayan bir məlumat dəstini ixrac etməyiniz lazım olan hallar olur. Və ya cədvəldən yalnız bəzi məlumatları seçmək lazımdır.

Menecerlər onlardan hər cür statistik məlumatları təqdim etməyi xahiş etdikdə korporativ layihələrin tərtibatçıları xüsusilə tez-tez bununla qarşılaşırlar. Və ya tez bərpa etmək üçün cədvəlin müəyyən bir hissəsinin ehtiyat nüsxəsini çıxarmaq lazım olduqda.

Yedəkləmə üçün bizə eyni yardım proqramı lazımdır mysqldump, bu belə adlandırılmalıdır:

Mysqldump -u istifadəçi adı -p dbname table_name --harada "axtar" > path_and_dump_file_name

Nəticədə, bütün strukturu ilə cədvəl yaratmaq üçün SQL əmrləri olan bir fayl alacağıq, yaradıldıqdan sonra axtarış sorğusu ilə seçilmiş məlumatlarla doldurulacaq.

Yalnız bir və ya bir neçə cədvəldə saxlanılan məlumatları əldə etmək lazımdırsa, onda biz cədvəldəki bütün məlumatları seçmək üçün əvvəlki vəziyyətdə istifadə olunan əmri yalnız bir neçə dəqiqləşdirmə ilə dəyişdirməliyik:

Mysql -u istifadəçi adı -p -e "SEÇ * Cədvəl adından HARADA axtarış et" > yol_və fayl_adı

Anladığınız kimi, direktivdən istifadə edərək sorğuda göstərilən müxtəlif dəqiqləşdirmələrə əlavə olaraq HARADA, digər SQL konstruksiyalarından istifadə edə bilərsiniz: QOŞULUN, BİRLİK və s.

İstənilən statistika toplana bilər 🙂

Eyni hərəkət MySQL komanda xəttindən də aşağıdakı əmrlə yerinə yetirilə bilər:

SEÇİN * verilənlər bazası_cədvəlindən OUTFILE "yol_və_fayl_adını" axtarın;

Bu əmr yalnız seçimin nəticələri ilə fayllar yaratmaq üçün nəzərdə tutulmuşdur. Üstəlik, nəticələr yalnız fayllara ixrac edilə bilməz, həm də dəyişənlərə yazıla bilər və çıxış məlumatları müxtəlif yollarla formatlana bilər.

Əgər yuxarıda sizin vəziyyətiniz varsa, onda siz bu əmrə zəng etmək üçün parametrlərin və seçimlərin tam siyahısını burada tapa bilərsiniz - https://dev.mysql.com/doc/refman/5.7/en/select-into.html

MySQLdump-a qısa turumun sonunda mən MySQL verilənlər bazası və cədvəllərinin optimallaşdırılmış zibilini yaratmaq, verilənlər bazasını və fərdi cədvəlləri bərpa etmək üçün parametrlər siyahısı ilə əmr çağırmaq seçimi vermək istəyirəm. normal zənglə:

mysqldump -u istifadəçi adı -h MySQL_server_host_or_IP -p --no-autocommit --opt database_name > path_and_dump_file_name;

Təcrübə xatirinə mən 143 MB MySQL verilənlər bazasını boşaltmaq üçün bu seçimdən istifadə etdim. Verilənlər bazası xüsusi seçimlər olmadan mysqldump-a zəng etməklə edilən zibildən bərpa edildikdə, sonrakı bərpa 59 saniyə çəkdi, 1 dəqiqə 3 saniyə.

Razıyam ki, bu xırda şeydir. Ancaq bu yalnız bir vəziyyətdədir verilmiş həcm data. İstifadə edərsə bu texnika 1GB-dan böyük bir zibil yaratdıqda, fərq daha əhəmiyyətli olacaq.

Əgər belə bir vəziyyətlə qarşılaşsanız, əvvəlcə MySQL verilənlər bazası zibilini arxivə yığmağı unutmayın. tar.gz ən yaxşısıdır. Sonra bərpa daha da az vaxt aparacaq.

MySQL-dən Excel və csv fayllarına verilənləri ixrac edin

MySQL-dən məlumatın bu iki formata çıxarılması haqqında məlumatları bir blokda birləşdirməyim əbəs deyildi, çünki onlar çox oxşardırlar, onlar təxminən eyni şəkildə istifadə olunur (cədvəl şəklində məlumatı strukturlaşdırmaq üçün) və eyni əmrlər ixrac üçün çağırılacaq.

Bildiyiniz kimi, bu formatlar arasında yeganə əhəmiyyətli fərq, xls və xlsx uzantılarının proqramda yaradılmış faylların olmasıdır. Microsoft Office Yalnız Windows altında işləyən Excel, csv faylları daha çox yönlüdür və onlarla əməliyyatlar bir çox redaktorlarda mümkündür.

Bu o demək deyil ki, xls Microsoft-dan başqa heç bir yerdə deyil Office Excel, açılmayacaq. Eyni OpenOffice bunun əksini təsdiqləyir.

Lakin bu ehtimal üçün bu dəstək proqram məhsulunda olmalıdır. csv faylları hətta Notepad kimi adi mətn redaktorunda da oxuna bilər, yalnız bu forma tamamilə oxuna bilməyəcək.

Başlamaq üçün, yalnız nəticələr xls və ya csv-ə ixrac edilə bilər SQL sorğuları, daha əvvəl işləməyi öyrəndiyimiz, çünki bütün verilənlər bazasını bir faylda bir əməliyyatda göstərmək mümkün olmayacaq.

Birincisi, bu optimal deyil, çünki belə bir faylın verilənlər bazasında saxlanılan böyük miqdarda məlumatla açılması ehtimalı azdır. İkincisi, məlumatı faylın içərisində cədvəllərə və sahələrə necə bölmək aydın deyil.

Xeyr, əlbəttə ki, bunu etmək mümkündür, lakin çətin ki, bir komanda bunu etsin və ümumiyyətlə konsolda kimsə bunu edəcək. Düşünürəm ki, bu məqsədlər üçün sizə xüsusi proqram təminatı və ya ən azı skript lazımdır.

Birdən bütün MySQL verilənlər bazasından məlumatı konsolda bir və ya bir neçə xls faylına bir anda necə ixrac edə biləcəyinizi bilirsinizsə, bu barədə şərhlərdə yazın. Düşünürəm ki, bu barədə oxumaq çoxlarına faydalı olacaq.

Beləliklə, məlumatları MySQL-dən xls və csv-ə necə ixrac etmək barədə danışırıqsa, o zaman kommunal vasitəsilə birbaşa server konsolunda edə bilərsiniz. mysql və ya əvvəlki məqaləmdə sizə təqdim etdiyim işdə.

Sıra ilə başlayaq.

Siz MySQL verilənlər bazasından məlumatları csv və xls formatlarına birbaşa server konsolunda aşağıdakı əmrlərdən istifadə edərək ixrac edə bilərsiniz.

Aktiv linux sistemlər:

Mysql -u istifadəçi adı -d dbname -p -e "SEÇ * FROM dbtable;" | sed "s/"/\"/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > yol_və fayl_adı. csv

Prinsipcə, tamamilə zəruri olduqda, MySQL məlumatlarını Excel faylına ixrac etmək üçün bu əmrdən istifadə edə bilərsiniz. Ancaq düzünü desəm, praktikada məlumatlarla məşğul olmadım və sonunda nə çıxacaq - heç bir fikrim yoxdur, çünki. İndi Windows altında işləyirəm. Bu əmri Linux altında istifadə edirsinizsə, zəhmət olmasa işinizin nəticələri haqqında şərhlərdə yazın. Hesab edirəm ki, məlumat hər kəs üçün maraqlı olacaq.

Aktiv Windows:

Yuxarıdakı komanda ilə MySQL cədvəllərindən məlumatların csv-yə ixracı təəssüf ki, bu halda uğur qazanmayacaq, çünki Windows-da Linux-dan fərqli olaraq daxili sistem yoxdur konsol əmri Linux-da olan axınlarla işləmək.

Quraşdırın, əlbəttə ki, edə bilərsiniz, amma çox problem var. Alternativ olaraq siz də istifadə edə bilərsiniz CygWin Windows sistemləri üçün Linux konsol emulyatorudur.

Yaxşı, əgər siz artıq quraşdırmısınızsa. Əks halda, MySQL verilənlər bazasından məlumatların seçilmiş şəkildə ixracı bizə çox problem gətirəcək.

Ancaq xls faylına məlumat çıxarmaq 5 qəpik qədər asandır 🙂 Bunu şəxsən cəhd etdiyim aşağıdakı şəkildə idarə etmək çox asandır:

Mysql -u istifadəçi adı -d dbname -p -e "SEÇ * FROM dbtable;" > yol_və fayl_adı.xls

açıldı verilmiş fayl Microsoft Office Excel-də heç bir problem olmadan. Yeganə odur ki, açılan faylın faktiki formatının göstərilən uzantıdan fərqli olduğu barədə xəbərdarlıq mesajı açıldı.

Ancaq hərəkəti təsdiqləyərkən sənəd çətinlik çəkmədən açıldı - bütün məlumatlar cədvəlin özündə saxlandığı formada hüceyrələrə bölündü.

Bilmirəm, bəlkə də Microsoft Office Excel-də hər hansı konkret hərəkəti yerinə yetirərkən gələcəkdə problemlər yaranacaq, mən o qədər də dərindən qazmadım. Məlumatların adi görünüşündə, heç olmasa, qeyri-adi bir şeyə rast gəlmədim.

MySQL-dən ixrac edilən xls faylını bu proqramda və ya digər proqramlarda istifadə edərkən hər hansı problemlə qarşılaşsanız, şərhlərdə mənə bildirin.

Yuxarıda təsvir edilən şəkildə MySQL verilənlər bazasının məzmununu prinsipcə csv faylına ixrac edə bilərsiniz. Lakin sonra cədvəlin müxtəlif sahələrindən alınan məlumatlar toplu şəkildə, ayırıcılar olmadan yazılacaq, bu da zəif göstərilə bilər. müxtəlif proqramlar csv faylları ilə işləyən cədvəllərlə işləmək.

OpenOffice, yeri gəlmişkən, vecinə deyil 🙂 MySQL verilənlər bazasının məzmununu xls-ə ixrac etdiyimiz zaman əldə etdiyimiz məlumatları avtomatik olaraq sərhəddi. Bunu necə etdiyini bilmirəm - amma istifadə etməyi məsləhət görürəm 🙂

Yaxşı, eyni Microsoft Office Excel cədvəldə bir qeydə uyğun gələn bütün məlumatları heç bir ayırıcı olmadan bir hüceyrəyə yazaraq göstərdi. Düşünürəm ki, digər elektron cədvəl redaktorları da bunu edəcək.

Buna görə də, MySQL verilənlər bazasını csv fayllarına ixrac edərkən, redaktorlar tərəfindən qəbul edilən xüsusi simvollarla məlumatları ayıraraq bunu etməlisiniz.

Və burada MySQL məlumatlarını csv və xls-ə ixrac etməyin ikinci yoluna, yəni MySQL əmr satırından istifadə etməyə rəvan yaxınlaşdım.

Beləliklə, MySQL məlumatlarını bu şəkildə csv faylına ixrac etmək üçün bizə aşağıdakı əmr lazımdır:

* SEÇİN verilənlər bazası_cədvəlindən OUTFILE "path_and_file_name.csv" SAHƏLƏRİ "," TARAFINDAN XİTAM EDİLƏN """ SƏTİRLƏR İLƏ QAPADA "\n";

Onun icrası nəticəsində siz ona zəng edərkən göstərdiyiniz yolda csv faylı alacaqsınız və bu fayl əksər müasir elektron cədvəl redaktorlarında düzgün açılacaqdır. Hər halda qaçmağı xatırladıram əmr verilmişdir yalnız MySQL verilənlər bazasına qoşulduqdan sonra lazımdır.

Bu əmr həm də Microsoft Office Excel-də düzgün göstərilmək üçün MySQL məlumatlarını xls faylına ixrac etmək üçün əladır. Yalnız bu halda, ayırıcılara ehtiyacımız yoxdur, çünki məlumatın hüceyrələrə parçalanmasına müdaxilə edəcəklər:

SEÇİN * verilənlər bazası_cədvəlindən OUTFILE "path_and_file_name.xls";

Ancaq praktikada hər şey təsvir etdiyim qədər sadə deyil. Komandanın icrası zamanı konsolda ixracın tamamlanmasına mane olan aşağıdakı xəta ilə qarşılaşa bilərsiniz:

XƏTƏ 1290 (HY000): MySQL server --secure-file-priv seçimi ilə işləyir, ona görə də bu bəyanatı yerinə yetirə bilmir

Buna səbəb MySQL serverinizin seçimlə işə salınmasıdır --secure-file-priv. Şəxsən mən bu problemlə konsolda işləmək üçün WAMP OpenServer dəstinə daxil olan MySQL paylama dəstindən istifadə etdiyim üçün qarşılaşdım, bu da öz növbəsində MySQL serverini bu şəkildə işə salır.

Burada problemi həll etməyin iki yolu var:

  • MySQL serverinin başlanğıc seçimlərini dəyişdirin
  • Təyinat MySQL ixrac faylının yolunu dəyişdirin

Birinci üsul mənə çox mürəkkəb göründü, çünki. Bütün sonrakı şərtlərlə mənim tərəfimdən yazılmayan OpenServer konfiqurasiyasını qazmalı olardım 🙂 Buna görə də ikinci yola getməyə qərar verdim. Bənzər bir problemlə qarşılaşsanız, məndən sonra təkrarlayın.

Əvvəlcə MySQL komanda xəttinə keçməli və aşağıdakı əmrlərdən birini yerinə yetirməlisiniz:

"secure_file_priv" KİMİ DƏYƏNİŞLƏRİ GÖSTƏRİN; SEÇİN @@GLOBAL.secure_file_priv;

Hər ikisinin icrasının nəticəsi MySQL qlobal dəyişənin dəyəri olacaq təhlükəsiz_fayl_priv, MySQL məlumatlarının ixracı və idxalı əməliyyatlarının həyata keçirilə biləcəyi qovluğa gedən yolu ehtiva edir (gələcəkdə məlumatların idxalı ilə bağlı məqaləyə keçid).

Bunlar. əmrlərdən istifadə edərkən DATA YÜKLƏSEÇİN … OUTFILE ixrac və idxal edilmiş fayllar yalnız bu qovluqda yerləşdirilə bilər.

Mənim vəziyyətimdə bu dəyişənin ümumiyyətlə müəyyən edilmiş dəyəri var idi SIFIR, çünki Mən, artıq dediyim kimi, konsolda işləmək üçün OpenServer-ə daxil olan paylamadan MySQL utilitlərindən istifadə edirəm. Bu dəyər MySQL verilənlərinin müəyyən edilmiş əmrlərdən istifadə edərək ixrac və idxal əməliyyatlarının tamamilə bağlandığını göstərirdi.

Sonradan məlum olduğu kimi, bu, qutulu WAMP və MAMP serverlərindən istifadə halında ümumi vəziyyətdir.

Təəssüf ki, mənim vəziyyətimdə MySQL qlobal dəyişənlərinin dəyərlərini dəyişdirmək üçün adi üsullardan istifadə etmək mümkün olmadı:

SET dəyişən_adı = dəyər;

Nəticədə konsolda yalnız aşağıdakı səhvi gördüm:

1-ci sətirdə XƏTƏ 1238 (HY000): "secure_file_priv" dəyişəni yalnız oxunan dəyişəndir.

Nəhayət, dəyişənin dəyərini dəyişdirmək üçün təhlükəsiz_fayl_priv və ixrac və idxal əməliyyatlarını açmaq üçün MySQL paylanmasının kök qovluğunda yerləşən mysql.ini MySQL konfiqurasiya faylına daxil olmaq lazım idi və ya MySQL WAMP/LAMP/ ilə birlikdə olarsa, başqa yolla əldə edilə bilər. MAMP server quruluşu.

Yeri gəlmişkən, fayl mübadiləsi bufer qovluğuna gedən yolu dəyişdirmək istəyirsinizsə, eyni şeyi etməlisiniz.

Mənim vəziyyətimdə bu dəyişən konfiqurasiyada artıq mövcud idi, yalnız şərh edilmiş formada:

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

Əgər sizdə yoxdursa, o zaman bölməyə sıfırdan yazın (heç olmasa, orada yerləşir).

Mən onu şərhdən çıxardım və yazıldığı formada istifadə etmək qərarına gəldim. Bunlar. MySQL-dən məlumatları ixrac edərkən və onları geri idxal edərkən, mənim fayllarım indi kataloqda saxlanacaq c:\openserver\userdata\temp\.

Konfiqurasiyanı dəyişdirdikdən sonra (yeri gəlmişkən, hər hansı bir), dəyişikliklərin qüvvəyə minməsi üçün serverinizi və ya parametrlərini düzəltdiyiniz ayrıca bir xidməti yenidən başlatmağı unutmayın!

Əmin olmaq üçün MySQL serverini yenidən işə saldıqdan sonra dəyişəni yenidən göstərin təhlükəsiz_fayl_priv və onun dəyərini panoya kopyalayın.

İndi əmri çağırmalıyıq, başlanğıcda olduğu kimi, yalnız MySQL verilənlər bazasından məlumatların saxlanacağı faylın adından əvvəl dəyişdirdiyimiz dəyişəndə ​​saxlanılan yolu aşağıdakı formada yazın:

SEÇİN * verilənlər bazası_cədvəlindən OUTFILE "value_secure_file_priv\file_name.csv";

Bundan sonra MySQL-dən məlumatların ixracı mənim vəziyyətimdə işlədi.

Vacib məqam! Əgər siz Windows altında MySQL ilə işləyirsinizsə, o zaman faylın yolunu göstərərkən "\"-ni "/" kimi dəyişməyi unutmayın, əks halda səhv --secure-file-priv hər halda özünü göstərməyə davam edəcək.

MySQL verilənlər bazasını və onun cədvəllərini necə boşaltmaq, həmçinin MySQL cədvəllərindən məlumatların müxtəlif formatlara çıxarılması haqqında bu məqalə sona çatır. Rəyinizi şərhlərdə yazın və praktikada ən çox istifadə etdiyiniz bütün skript seçimlərinizlə paylaşın.

Məqaləni bəyəndinizsə, məqaləni yenidən yerləşdirərək müəllifə təşəkkür edə bilərsiniz sosial Mediya və ya aşağıdakı formadan istifadə edərək, əsas hostinq üçün ödəniş edə biləsiniz.

Hər kəsə uğurlar və tezliklə görüşərik! 🙂

P.S.: vebsayta ehtiyacınız varsa və ya mövcud vebsaytda dəyişiklik etmək lazımdırsa, lakin bunun üçün vaxt və istək yoxdursa, xidmətlərimi təklif edə bilərəm.

5 ildən artıq təcrübə peşəkar veb sayt inkişafı. ilə işləyin PHP

Əgər etsəydin ehtiyat nüsxəsi və ya verilənlər bazasını SQL faylına ixrac etsəniz, onu phpMyAdmin vasitəsilə hosting hesabınızın MySQL verilənlər bazalarından birinə idxal edə bilərsiniz.

Qeyd. MySQL verilənlər bazasında CREATE DATABASE xətti olmamalıdır. Əks halda idxal uğursuz ola bilər.

PhpMyAdmin interfeysi bir anda 8 MB məlumat idxal etməyə imkan verir. Daha böyük faylı idxal etmək lazımdırsa, onu 8 MB-lıq bir neçə hissəyə bölün.

Diqqət! Veb saytınızın düzgün işləməsini təmin etmək üçün idarə olunan WordPress hostinqi üçün verilənlər bazası idxal edirsinizsə.

phpMyAdmin ilə SQL fayllarının MySQL verilənlər bazasına idxalı

Bundan sonra SQL faylı işləyəcək və SQL faylında seçdiyiniz verilənlər bazasını yeniləyəcək. Verilənlər bazasını bərpa etmək bir neçə dəqiqə çəkə bilər.

Qeyd. Səhv mesajı alırsınızsa, skript vaxt aşımı keçdi, idxalı başa çatdırmaq istəyirsinizsə, lütfən, eyni faylı yenidən təqdim edin və idxal davam edəcək, siz dərhal eyni faylı seçib prosesi yenidən başlada bilərsiniz.

kimi mühüm mövzuları əhatə edir verilənlər bazası ixracıverilənlər bazası idxalı MySQL. Soruşursunuz, niyə ümumiyyətlə verilənlər bazalarını ixrac edin? Bu adətən bir səbəbdən edilir Ehtiyat surəti verilənlər bazası, necə deyərlər, yalnız "yanğın" halında həmişə əl altında olsun. Axı, heç kim məlumat itkisinə səbəb ola biləcək hostinq uğursuzluğu kimi fors-major hallardan immunitetə ​​malik deyil. Başqa bir nümunə saytınıza zərər vermək istəyən hakerlərin hücumu ola bilər. Əslində belə misallar çox ola bilər.

Verilənlər bazasının idxalı verilənlər bazasını cari hostinqə “yükləmək” tələb olunduqda və ya başqa hostinqə keçid zamanı istifadə olunur. Bu da tez-tez praktikada veb ustaları tərəfindən edilir.

Özləri tərəfindən verilənlər bazası ixracıverilənlər bazası idxalı- asan tapşırıqlar. Həyatınızın qalan hissəsi üçün onların həyata keçirilməsi alqoritmini xatırlamaq üçün bu hərəkətləri bir dəfə etməyə dəyər. Bütün bunların nümunələrlə necə edildiyinə baxaq.

Verilənlər bazasını ixrac etmək üçün hostinqin admin panelinə, sonra isə verilənlər bazası olan bölməyə - MySQL verilənlər bazasına keçməlisiniz.

İxrac etmək istədiyiniz verilənlər bazasını seçin (phpMyAdmin-ə keçin). IN bu misal verilənlər bazası "cl209038" adlanır.

1) Birinci halda - "Tez" seçin, SQL formatını tərk edin və "OK" düyməsini basın. Nəticədə verilənlər bazasının surəti kompüterimizə yüklənəcək.

2) İkinci halda, "Normal" seçin. Verilənlər bazası ixrac parametrləri ilə bir səhifə görünəcək. Bütün cədvəlləri seçin, aşağıda göstərildiyi kimi kodlaşdırma və sıxılma səviyyəsini seçin. Qalanları, bir qayda olaraq, dəyişdirmək lazım deyil. "OK" düyməsini sıxırıq və verilənlər bazası kompüterimizə ixrac olunur.

Gördüyünüz kimi hamısı budur verilənlər bazası ixracı MySQL sadə bir işdir.

Verilənlər bazasını idxal etmək üçün siz həmçinin hostinqin admin panelinə keçməlisiniz, MySQL verilənlər bazası olan bölməyə keçməlisiniz. Burada iki seçim var - ya yeni verilənlər bazası yaratmalı, ya da mövcud verilənlər bazasına ixrac etməlisiniz.

Məsələn, saytı başqa hostinqə köçürsək, verilənlər bazası yaratmaq tələb olunacaq. Eyni hostinqimiz varsa və verilənlər bazası artıq yaradılıbsa, sadəcə olaraq bu verilənlər bazasını seçib məlumatları ona “yenidən yükləyə” bilərsiniz. Siz, əlbəttə ki, onu silə, sonra yenisini (boş) yarada və ona yükləyə bilərsiniz.

1) Baza artıq oradadır. Biz verilənlər bazasının surətini idxal etmək üçün verilənlər bazasını seçirik. Verilənlər bazasına idxal menyusu görünəcək.

Import etmək istədiyiniz verilənlər bazasının surət faylını seçin. Lazım gələrsə, verilənlər bazasının kodlaşdırılmasını və formatını dəyişə bilərsiniz. Sonra, "OK" düyməsini basın. İdxaldan sonra sistem hər şeyin yaxşı getdiyini və ya prosesdə hər hansı bir səhvin olub olmadığını bizə məlumat verəcəkdir. Səhvlər baş verərsə, hostinqdə verilənlər bazasını silməyə cəhd edə, sonra boş verilənlər bazası yarada və verilənlər bazasını yenidən idxal edə bilərsiniz.

2) Yeni verilənlər bazasının yaradılması. Hosting admin panelinə gedirik, MySQL verilənlər bazası olan bölməni seçirik. MySQL verilənlər bazası idarəçiliyinə daxil oluruq.

Bunun üçün istədiyiniz verilənlər bazası adını və parolunu daxil edin. "Yarat" düyməsini basın. Nəticədə yeni (boş) verilənlər bazası yaradılmalıdır - verilənlər bazamızın əvvəllər saxlanmış nüsxəsini ona idxal etmək lazım gələcək.

MySQL verilənlər bazalarının ixracı və idxalı haqqında danışmaq istədiyim bütün bunlardır. Bu suallarla bağlı hər hansı bir çətinlikiniz varsa - bu dərsə şərh yazın.

Saytı yerli serverdən hostinqə köçürərkən məcburi prosedurlardan biri verilənlər bazasının (verilənlər bazasının) ixracı/idxalıdır. Buna görə də, bu məqalədə yerli serverdən, yəni veb interfeysindən verilənlər bazasının ixracı və idxalı prosesini mümkün qədər ətraflı təsvir etməyə çalışacağam. PHPMyAdmin hostinq üçün 3.2.3 versiyası.

Ediləcək ilk şey qaçmaqdır yerli server, bu halda Denverdir. Denwer-i işə saldıqdan sonra bir brauzer açmalı və brauzer xəttinə yazmalısınız: "http://localhost/tools/phpmyadmin", bundan sonra qarşınızda bir pəncərə açılacaqdır.(Şəkil 1)əvvəl yaradılmış ilə verilənlər bazaları.

Şəkil 1

Daha sonra ixrac edəcəyimiz verilənlər bazasını seçməlisiniz, mənim vəziyyətimdə bu Mybd adlı verilənlər bazasıdır. Verilənlər bazası brauzer pəncərəsinin sol tərəfində, qeyd etdiyi yerdə üzərinə klikləməklə seçilə bilər "Lütfən, verilənlər bazası seçin" (Şəkil 2).


Şəkil 2

Lazım olan verilənlər bazası seçildikdən sonra verilənlər bazası strukturu ilə pəncərə açılacaq. Üst menyuda bir element var İxrac Bununla biz verilənlər bazasını kompüterə ixrac edəcəyik, sonra onu hostinqə idxal edəcəyik. Beləliklə, "İxrac" maddəsinə keçin (Şəkil 3).


şək.3

Açılan pəncərədə bəzi ölçmələr etməlisiniz (Şəkil 4), yəni: "İxrac" blokunda, elementə klikləməklə verilənlər bazasının bütün cədvəllərini seçməlisiniz. "Hamısını seç" və yanındakı qutuyu işarələyin SQL, bu element ixrac ediləcək fayl növü üçün cavabdehdir. Həmçinin yanındakı qutuyu işarələyin Fayl kimi saxla, bu verilənlər bazasının faylda saxlanmasını təmin edəcək. Qalan parametrləri dəyişdirmək lazım deyil, sadəcə düyməni basın Get.

Şəkil 4

İndi hər şeyi düzgün etmisinizsə, verilənlər bazası faylı kompüterinizə yüklənməlidir. Bu faylın köməyi ilə verilənlər bazasını hostinqə idxal edəcəyik.

Həmçinin, istifadə etdiyim kodlaşdırmanı dəyişdirmək üçün fayl kodlamasını BOM olmadan UTF-8 olaraq dəyişdirməlisiniz. mətn redaktoru Notepad++(Yüklə) . Bu proqramla verilənlər bazası faylını və menyuda açın "Kodlaşdırma" seçin "BOM olmadan UTF-8-ə çevirin" (Şəkil 5), sonra yadda saxlayın və bağlayın.


Şəkil 5