Аппараттық және бағдарламалық қамтамасыз етуді орнату

Деректерді MySQL-ге қалай экспорттауға болады. Экспорттық дерекқор (PHPMyAdmin)

Сайтты жергілікті серверден хостингке көшіру кезінде міндетті процедуралардың бірі дерекқорды (деректер базасын) экспорттау/импорттау болып табылады. Сондықтан, осы мақалада мен жергілікті серверден, яғни веб-интерфейстен дерекқорды экспорттау және импорттау процесін мүмкіндігінше егжей-тегжейлі сипаттауға тырысамын. PHPMyAdminхостингке арналған 3.2.3 нұсқасы.

Біріншіден, жергілікті серверді іске қосу керек, бұл жағдайда Денвер. Кейін Денверді іске қосыңызсіз браузерді ашып, шолғыш жолына жазуыңыз керек: «http://localhost/tools/phpmyadmin», содан кейін сіздің алдыңызда терезе ашылады.(Cурет 1)бұрын жасалған мәліметтер базасы.

1-сурет

Әрі қарай, біз экспорттайтын дерекқорды таңдау керек, менің жағдайда бұл Mybd деп аталатын дерекқор. Дерекқорды шолғыш терезесінің сол жағында, ол көрсетілген жерде басу арқылы таңдауға болады «Дерекқорды таңдаңыз» (Cурет 2).


2-сурет

Қажетті мәліметтер қорын таңдағаннан кейін деректер қоры құрылымы бар терезе ашылады. Жоғарғы мәзірде элемент бар Экспорттауоның көмегімен біз оны хостингке импорттау үшін дерекқорды компьютерге экспорттаймыз. Сонымен, «Экспорт» тармағына өтіңіз (Cурет 3).


3-сурет

Ашылған терезеде кейбір өлшемдерді жасау керек (Cурет 4), атап айтқанда: «Экспорт» блогында элементті басу арқылы деректер қорының барлық кестелерін таңдау керек. «Барлығын таңдау»және жанындағы құсбелгіні қойыңыз SQL, бұл элемент экспортталатын файл түріне жауап береді. Сондай-ақ жанындағы құсбелгіні қойыңыз Файл ретінде сақтау, ол дерекқордың файлда сақталуын қамтамасыз етеді. Қалған параметрлерді өзгерту қажет емес, түймені басу жеткілікті Барыңыз.

4-сурет

Енді, егер сіз бәрін дұрыс жасасаңыз, дерекқор файлы компьютеріңізге жүктелуі керек. Бұл файлдың көмегімен біз дерекқорды хостингке импорттаймыз.

Сондай-ақ, файл кодтауын BOMсыз UTF-8 форматына өзгерту керек, мен кодтауды өзгерту үшін мәтіндік редакторды қолданамын Блокнот++(Жүктеп алу). Бұл бағдарламаның көмегімен дерекқор файлын және мәзірді ашыңыз «Кодтау»таңдау "UTF-8-ге BOMсыз түрлендіру" (Cурет 5), содан кейін сақтап, жабыңыз.


5-сурет

Сәлем, достар! 🙂

Бүгін мен консольде MySQL-мен жұмыс істеу туралы сөйлесуді жалғастырып, дерекқорды экспорттау процедурасына назар аударуды шештім. MySQL деректері.

Мақалада мен үйіндіні қалай жасау керектігі туралы айтатын боламын MySQL мәліметтер базасы, сонымен қатар MySQL-тен деректерді жүктеп салу excel файлыжәне csv пішімі.

Біз қарастырамыз әртүрлі опцияларақпаратты іріктеу: бір және бірнеше дерекқорлардың демпін жасау, жеке кестелерден және ерікті нәтижелерден деректерді экспорттау ТАҢДАУсұраулар.

Сондай-ақ, сервер консолінде MySQL дерекқорынан деректерді көрсету әдісі туралы сөйлесейік және пәрмен жолы MySQL.

Бұл мақалада мен phpMyAdmin және басқа көрнекі құралдар арқылы деректерді қалай экспорттау туралы айтпаймын.

Біріншіден, бұл тақырып бойынша желіде жеткілікті материал бар. Оның үстіне, мен көшіру-қоюды қалаумен өртенбейтін жоғары сапалы материал.

Екіншіден, мен өзімнің мақалаларымның бірінде MySQL дерекқорынан SQL файлына ақпаратты шығару процесін қысқаша қарастырдым.

Сондықтан, егер сіз кәсіби әзірлеуші ​​болмасаңыз немесе жүйелік әкімші, кімге консольмен жұмыс істеу туралы ақпарат қажет болуы мүмкін және сіз тек дерекқорды phpMyAdmin-ге экспорттау бойынша нұсқаулар үшін келген болсаңыз, жоғарыдағы сілтемедегі ақпаратты оқумен шектеле аласыз.

Мені дұрыс түсінгеніңізді қалаймын: мен сізді ешбір жағдайда ренжіткім келмейді, бірақ мен сіздің уақытыңызды мақсатқа барынша пайдалы етіп өткізіп, іздегеніңізді алуыңызды қалаймын.

Бұл кіріспе бөлімін аяқтайды және біз MySQL дерекқорының дампін құруға арналған консольдық командаларды шолуға көшеміз, мен оны сақталған деректер көлемі бойынша сұрыптауды шештім: бүкіл дерекқорды экспорттаудан бастап жеке кестелерге және ерікті сұраулардың нәтижелеріне дейін. .

Консоль арқылы MySQL дерекқорының дампін жасау

Мен ең басында шағын түсініктеме жасағым келеді.

Негізгі үйіндібар файл болып табылады SQL жинағыкомандалар, олар іске қосылған кезде мәліметтер базасы мен кестелерді жасауға, сондай-ақ оларды ақпаратпен толтыруға мүмкіндік береді. MySQL дерекқорын басқа серверге немесе бұрыннан бар серверге көшіру үшін жүктеп алғысы келетіндерге демп қажет.

Сондай-ақ, егер біреу білмесе, MySQL дерекқорының сақтық көшірмесі шын мәнінде белгілі бір уақыт аралығында жасалған оның демпі болып табылады, бұл қажет болған жағдайда дерекқор құрылымы мен деректерді қалпына келтіруге мүмкіндік береді.

Деректерді экспорттау- бұл мәтіндік немесе графикалық редакторлармен әрі қарай жұмыс істеу үшін мәтіндік пішіндегі кестелерден ақпаратты алу ғана.

Сондықтан бұл әрекеттерге арналған пәрмендер сәл өзгеше болады.

Дерекқордың демпін жасау үшін MySQL деп аталатын кірістірілген утилита бар mysqldump, сервер консоліндегі немесе басқа қабықтағы MySQL пәрмен жолынан тыс пайдалануға арналған.

Сонымен, ең қарапайым және кең таралған опция үшін - MySQL консоліндегі белгілі бір дерекқордан деректерді басқа серверге немесе ішкі көшірмеге тасымалдау үшін экспорттау үшін келесі пәрменді орындау керек:

mysqldump -u пайдаланушы аты -p дерекқордың_аты > жол_және_дамп_файлының_аты

Бұл утилита MySQL дерекқорының демптерін тек SQL пәрмендері бар файлдар түрінде жасай алады, сондықтан файлыңыз үшін қандай кеңейтімді таңдасаңыз да, кез келген жағдайда оның мазмұны бірдей болады. Файлды құру мүмкін болуы үшін MySQL-тен ақпаратты экспорттаудан бұрын ол орналасатын каталогтың жазу рұқсаттарын тексеруді ұмытпаңыз.

Егер кенеттен сервердегі барлық дерекқорлармен демп жасау қажет болса, келесі пәрмен опциясын пайдаланыңыз:

mysqldump -u пайдаланушы аты -p --all-debases > path_and_dump_file_name

Бірнеше нақты дерекқорды шығару үшін келесі опциялармен mysqldump шақыру керек:

mysqldump -u пайдаланушы аты -p --деректер қорлары дерекқордың_аты1, дерекқордың_атауы, ... > жол_және_қоқыс_файлының_аты

Нәтижесінде, әрбір жағдайда сіз қамтылған кестелердің құрылымын (өрістер, олардың түрлері, индекстер, кілттер және т.б.) құру командаларын, сондай-ақ оларды деректермен толтыру операцияларын қамтитын MySQL дерекқорының демпін аласыз.

Бұл опция бүкіл дерекқорды қалпына келтіру және көшіру үшін ғана жарамды.

Кейбір MySQL кестелерінің сақтық көшірмелерін жасау және олардың деректерін оқылатын пішінде қалай алу керектігі әрі қарай талқыланады.

MySQL кестесін демпингтеу және деректерді экспорттау

Белгілі бір MySQL дерекқор кестелерінің дампін жасау үшін бізге бірдей қызметтік бағдарлама қажет mysqldump, келесі параметрлермен шақырылады:

mysqldump -u пайдаланушы аты -p дерекқор_атауы кесте_атауы1, кесте_атауы, ... > жол_және_дүмп_файл_аты

Тіпті mysqldump шақырған кезде де қажетті кестелерді параметр мәні ретінде көрсетуге болады --кестелер, қай параметрді пайдаланған кезде --мәліметтер базаларыеленбейді:

mysqldump -u пайдаланушы аты -p --деректер базалары дерекқордың_атауы1, дерекқордың_аты2 --кестелер кесте_аты1, кесте_атауы, ... > жол_және_қосылған_файл_аты

Жоғарыдағы мысал келесі қатені көрсетеді:

Mysqldump: қате пайда болды: 1049: дерекқорды таңдау кезінде белгісіз дерекқор "database_name1"

Көріп отырғаныңыздай, көрсетілгендер тізіміндегі ең соңғы дерекқор ғана пайдаланылады. Негізінде, бұл мінез-құлық өте қисынды, өйткені. барлық дерекқорларда көрсетілген кестелер болмауы мүмкін.

Жарайды, бізде MySQL дерекқор кестелерінің қоқысы бар. Оны қалпына келтіру немесе құрылыммен бірге көшіру үшін пайдалануға болады.

Бірақ егер сізге оларда сақталған ақпаратты және жақсырақ оқуға болатын пішінде алу қажет болса, оны менеджерге жіберіп, оны кәдімгі мәтін немесе электрондық кесте өңдегішінде көре аласыз ба? MySQL-де бұл үшін де құралдар бар.

Утилитаны шақыру опциясы біздің мақсаттарымызға жетуге көмектеседі. mysqlбелгілі бір параметрлері бар консольден:

Mysql -u пайдаланушы аты -p database_name -e "ТАҢДАУ * кесте_атауы"

Бұл пәрмен бізге MySQL пәрмен жолына өтпей-ақ қажетті дерекқорға сұранысты орындауға және нәтижені консольге шығаруға мүмкіндік береді.

Деректерді консольге шығармау үшін, бірақ оларды файлға жазу үшін пәрменді келесідей толықтыру керек:

Mysql -u пайдаланушы аты -p -e «Таңдау * кесте атауынан» > path_and_filename

Осы конструкциялардың арқасында біз кестенің барлық өрістерінде сақталған мәліметтерді ғана емес, сонымен қатар белгілі бір өрістерде де ала аламыз. Ол үшін қойылмалы таңбалардың (*) орнына үтірмен бөлінген қажетті таңбаларды тіркеу жеткілікті.

Нәтижесінде біз шығыста кәдімгі мәтіндік файл аламыз, онда тақырып түріндегі өрістердің атаулары және олар туралы барлық жазбалар үшін ақпарат болады. Оны қалыпты жағдайда ашуға болады мәтіндік редактор, оны жасау кезінде қандай ажыратымдылықты бергеніңізге қарамастан.

Егер сіз MySQL дерекқорынан деректерді xls немесе csv пішімінде экспорттағыңыз келсе, нәтижесінде алынған файл дұрыс көрсетілу үшін электрондық кесте редакторлары, содан кейін мұны қалай істеу керек, сәл кейінірек талқыланады 🙂

Сұраулар арқылы MySQL дерекқорынан сақтық көшірме жасау және деректерді шығару

Біз MySQL дерекқорын қалай тастау керектігі туралы әңгімелестік - бір және бірнеше, сондай-ақ олардың жеке кестелері. Бірақ кейде іс жүзінде бір кестемен шектелмейтін деректер жиынын экспорттау қажет болатын жағдайлар болады. Немесе кестеден кейбір деректерді ғана таңдау керек.

Корпоративтік жобаларды әзірлеушілер, әсіресе, менеджерлер олардан статистикалық мәліметтердің барлық түрлерін ұсынуды сұраған кезде жиі кездеседі. Немесе оны жылдам қалпына келтіру үшін кестенің белгілі бір бөлігінің сақтық көшірмесін жасау қажет болғанда.

Сақтық көшірме жасау үшін бізге бірдей қызметтік бағдарлама қажет mysqldump, оны келесідей атау керек:

Mysqldump -u пайдаланушы аты -p dbname table_name --мұнда "іздеу" > path_and_dump_file_name

Нәтижесінде біз бүкіл құрылымы бар кестені құруға арналған SQL командалары бар файлды аламыз, ол жасалғаннан кейін іздеу сұрауы арқылы таңдалған ақпаратпен толтырылады.

Егер бізге бір немесе бірнеше кестелерде сақталған деректерді алу қажет болса, онда кестедегі барлық деректерді таңдау үшін алдыңғы жағдайда қолданылған пәрменді бірнеше нақтылаумен өзгерту керек:

Mysql -u пайдаланушы аты -p -e «ТАҢДАУ * Кесте_атын ҚАЙДА іздеу» > жол_және_файл_аты

Түсінгеніңіздей, директива арқылы сұрауда көрсетілген әртүрлі түсіндірулерге қосымша ҚАЙДА, сіз басқа SQL құрылымдарын пайдалана аласыз: ҚОСЫЛУ, ОДАжәне т.б.

Кез келген статистиканы жинауға болады 🙂

Сол әрекетті MySQL пәрмен жолынан келесі пәрмен арқылы орындауға болады:

ТАҢДАУ * Дерекқор_кестесінен OUTFILE "жол_және_файл_атын" іздеу;

Бұл пәрмен тек таңдау нәтижелері бар файлдарды жасауға арналған. Сонымен қатар, нәтижелерді файлдарға экспорттауға ғана емес, сонымен қатар айнымалыларға жазуға және шығыс деректерін әртүрлі тәсілдермен пішімдеуге болады.

Егер жоғарыда айтылған жағдай сіздің жағдайыңыз болса, онда сіз осы пәрменді шақыруға арналған параметрлер мен опциялардың толық тізімін мына жерден таба аласыз - 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;

Эксперимент үшін мен қолдандым бұл опция 143 Мбайт MySQL дерекқорын шығару үшін. Арнайы опцияларсыз mysqldump шақыру арқылы жасалған демптен дерекқор қалпына келтірілгенде, кейінгі қалпына келтіру 1 минут 3 секундқа қарсы 59 секунд уақытты алды.

Бұл ұсақ-түйек екенімен келісемін. Бірақ бұл деректердің берілген көлемі жағдайында ғана. Егер сіз осы әдісті 1 ГБ-тан үлкен қоқыс жасау кезінде қолдансаңыз, онда айырмашылық маңыздырақ болады.

Егер сіз осындай жағдайға тап болсаңыз, алдымен MySQL дерекқорының демпін мұрағатқа салуды ұмытпаңыз. tar.gz ең жақсысы. Сонда қалпына келтіру одан да аз уақытты алады.

Деректерді MySQL жүйесінен Excel және csv файлдарына экспорттау

MySQL-тен ақпаратты шығару туралы ақпаратты осы екі форматқа бір блокта біріктіргенім бекер емес еді, өйткені олар өте ұқсас, олар шамамен бірдей қолданылады (кесте түріндегі ақпаратты құрылымдау үшін) және экспортқа бірдей командалар шақырылады.

Өздеріңіз білетіндей, бұл пішімдердің жалғыз маңызды айырмашылығы - xls және xlsx кеңейтімдерінде жасалған файлдар бар Microsoft бағдарламасы Office Excel, ол тек Windows жүйесінде жұмыс істейді, ал csv файлдары жан-жақты және олармен жұмыс істеу көптеген редакторларда мүмкін.

Бұл xls еш жерде емес дегенді білдірмейді Microsoft Office Excel ашылмайды. Сол OpenOffice керісінше растайды.

Бірақ бұл мүмкіндік үшін бұл қолдауішінде болуы керек бағдарламалық өнім. csv файлдарын Блокнот сияқты қарапайым мәтіндік редакторда да оқуға болады, тек бұл пішін толығымен оқылмайды.

Бастау үшін тек нәтижелерді xls немесе csv форматына экспорттауға болады SQL сұраулары, біз бұрын жұмыс істеуді үйрендік, өйткені бір файлға бүкіл дерекқорды бір операцияда көрсету мүмкін болмайды.

Біріншіден, бұл оңтайлы емес, өйткені мұндай файлдың дерекқорда сақталған үлкен көлемдегі ақпаратпен ашылуы екіталай. Ал, екіншіден, ақпаратты файл ішіндегі кестелер мен өрістерге қалай бөлуге болатыны түсініксіз.

Жоқ, бұл, әрине, мүмкін, бірақ бір команданың мұны істеуі екіталай, және жалпы алғанда, консольде мұны ешкім жасауы екіталай. Менің ойымша, бұл мақсаттар үшін сізге арнайы бағдарламалық жасақтама немесе кем дегенде сценарий қажет болады.

Егер сіз кенеттен ақпаратты бүкіл MySQL дерекқорынан консольдегі бір немесе бірнеше xls файлдарына бірден қалай экспорттауға болатынын білсеңіз, бұл туралы түсініктемелерде жазыңыз. Бұл туралы оқу көптеген адамдарға пайдалы болады деп ойлаймын.

Сонымен, егер біз MySQL-ден xls және csv-ге деректерді қалай экспорттау туралы айтатын болсақ, онда сіз оны утилита арқылы сервер консолінде тікелей жасай аласыз. mysqlнемесе алдыңғы мақаламда сізді таныстырған жұмыс.

Тәртіппен бастайық.

Төмендегі пәрмендерді пайдаланып, деректерді MySQL дерекқорынан csv және xls пішімдеріне тікелей сервер консолінде экспорттай аласыз.

Үстінде linuxжүйелер:

Mysql -u пайдаланушы аты -d dbname -p -e "SELECT * FROM dbtable;" | sed "s/"/\"/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > жол_және файл_атауы. csv

Негізінде, өте қажет болса, MySQL деректерін Excel файлына экспорттау үшін осы пәрменді пайдалануға болады. Бірақ, шынымды айтсам, мен іс жүзінде деректермен айналыспадым, және соңында не болады - бұл түсініксіз, өйткені. Мен қазір Windows жүйесінде жұмыс істеймін. Егер сіз бұл пәрменді Linux астында қолдансаңыз, жұмысыңыздың нәтижелері туралы түсініктемелерде жазыңыз. Ақпарат барлығына қызықты болады деп ойлаймын.

Үстінде Windows:

Жоғарыдағы пәрменмен MySQL кестелерінен деректерді csv-ге экспорттау, өкінішке орай, бұл жағдайда сәтті болмайды, себебі Windows жүйесінде Linux-тен айырмашылығы Linux жүйесінде орнатылған ағындармен жұмыс істеуге арналған кірістірілген консоль пәрмені жоқ.

Оны орнату, әрине, мүмкін, бірақ тым көп қиындық. Сонымен қатар, сіз де пайдалана аласыз CygWin Windows жүйелеріне арналған Linux консоль эмуляторы болып табылады.

Жақсы, егер сізде ол орнатылған болса. В әйтпесе 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 файлына осылай экспорттау үшін бізге келесі пәрмен қажет:

* Дерекқор_кестесінен OUTFILE "path_and_file_name.csv" ТАҢДАҢЫЗ "," АЯҚТАЛҒАН """ ЖОЛДАРМЕН ҚОСЫЛҒАН "\n";

Оның орындалуының нәтижесінде сіз csv файлын шақыру кезінде көрсеткен жол бойынша аласыз, ол көптеген заманауи электрондық кесте редакторларында дұрыс ашылады. Қалай болғанда да, жүгіруді еске саламын бұйрық берілді MySQL дерекқорына қосылғаннан кейін ғана қажет.

Бұл пәрмен Microsoft Office Excel бағдарламасында дұрыс көрсету үшін MySQL деректерін xls файлына экспорттау үшін де тамаша. Тек осы жағдайда бізге сепараторлар қажет емес, өйткені олар ақпараттың жасушаларға бөлінуіне кедергі жасайды:

* Дерекқор_кестесінен OUTFILE INTO "path_and_file_name.xls" ТАҢДАУ;

Дегенмен, іс жүзінде бәрі мен сипаттағандай қарапайым емес. Пәрменді орындау кезінде консольде экспортты аяқтауға кедергі келтіретін келесі қатеге тап болуыңыз мүмкін:

ҚАТЕ 1290 (HY000): MySQL сервері --secure-file-priv опциясымен жұмыс істейді, сондықтан ол бұл мәлімдемені орындай алмайды

Бұл MySQL серверіңіз опциямен іске қосылғандықтан туындады --secure-file-priv. Мен бұл мәселеге консольде жұмыс істеу үшін WAMP OpenServer жинағына кіретін MySQL тарату жинағын пайдалануыма байланысты кездестім, ол өз кезегінде MySQL серверін осылай іске қосады.

Мұнда мәселені шешудің екі жолы бар:

  • MySQL серверін іске қосу опцияларын өзгертіңіз
  • Жолды өзгерту соңғы файл MySQL экспорты

Бірінші әдіс маған тым күрделі болып көрінді, өйткені. Мен барлық жағдайлармен жазбаған OpenServer конфигурациясын қазып алуым керек еді 🙂 Сондықтан мен екінші жолмен жүруді шештім. Ұқсас мәселеге тап болсаңыз, менен кейін қайталаңыз.

Алдымен MySQL пәрмен жолына өтіп, келесі пәрмендердің бірін орындау керек:

"secure_file_priv" СИЯҚТЫ АЙНАЛЫҚТАРДЫ КӨРСЕТУ; @@GLOBAL.secure_file_priv ТАҢДАУ;

Екеуін де орындау нәтижесі MySQL жаһандық айнымалысының мәні болады safe_file_priv, ол арқылы MySQL деректерін экспорттау және импорттау операцияларын орындауға болатын каталогқа жол бар (болашақта деректерді импорттау туралы мақалаға сілтеме).

Анау. командаларды пайдалану кезінде ДЕРЕКТЕРДІ ЖҮКТЕП АЛУжәне ТАҢДАУ … OUTFILEэкспортталған және импортталған файлдарды тек осы каталогта орналастыруға болады.

Менің жағдайда бұл айнымалы мәнде мүлде орнатылған мән болды NULL, өйткені Мен, жоғарыда айтқанымдай, консольде жұмыс істеу үшін OpenServer құрамындағы дистрибутивтен MySQL утилиталарын пайдаланамын. Бұл мән MySQL деректерін экспорттау және көрсетілген пәрмендерді пайдаланып импорттау операциялары толығымен жабылғанын көрсетті.

Кейінірек белгілі болғандай, бұл қораптағы WAMP және MAMP серверлерін пайдалану кезінде жиі кездесетін жағдай.

Өкінішке орай, менің жағдайда MySQL жаһандық айнымалы мәндерін өзгертудің әдеттегі әдістерін пайдалану мүмкін болмады:

SET айнымалы_атауы = мән;

Нәтижесінде мен консольде тек келесі қатені көрдім:

1-жолдағы ҚАТЕ 1238 (HY000): "secure_file_priv" айнымалысы тек оқуға арналған айнымалы болып табылады.

Соңында, айнымалының мәнін өзгерту үшін safe_file_privжәне экспорттау және импорттау операцияларын ашу үшін мен MySQL дистрибутивінің түбірлік каталогында орналасқан mysql.ini MySQL конфигурация файлына өтуім керек болды немесе MySQL WAMP/LAMP/мен бірге болса, басқа жолмен кіруге болады. MAMP серверін құрастыру.

Айтпақшы, файл алмасу буферінің каталогына жолды өзгерткіңіз келсе, дәл солай істеу керек.

Менің жағдайда, бұл айнымалы мән конфигурацияда бұрыннан бар, тек түсініктеме берілген пішінде:

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

Егер сізде жоқ болса, оны бөлімге нөлден бастап жазыңыз (кем дегенде, менде ол бар).

Мен оған түсініктеме бердім және оны ол жазылған пішінде пайдалануды шештім. Анау. MySQL-тен деректерді экспорттау және оны кері импорттау кезінде менің файлдарым енді каталогта сақталады c:\openserver\userdata\temp\.

Конфигурацияны өзгерткеннен кейін (айтпақшы, кез келген), өзгертулер күшіне енуі үшін мүмкіндігінше параметрлері түзетілген серверді немесе бөлек қызметті қайта іске қосуды ұмытпаңыз!

Әрине, MySQL серверін қайта іске қосқаннан кейін айнымалы мәнді тағы бір рет көрсетіңіз safe_file_privжәне оның мәнін алмасу буферіне көшіріңіз.

Ал енді MySQL дерекқорынан ақпарат сақталатын файлдың атының алдында ғана бастапқыдағыдай пәрменді шақыру керек, біз өзгертіп жатқан айнымалыда сақталған жолды келесі пішінде жазыңыз:

* Дерекқор_кестесінен OUTFILE INTO "value_secure_file_priv\file_name.csv" ТАҢДАУ;

Осыдан кейін MySQL деректерін экспорттау менің жағдайда жұмыс істеді.

Маңызды нүкте! Егер сіз Windows жүйесінде MySQL-мен жұмыс істеп жатсаңыз, файлға жолды көрсету кезінде «\» мәнін «/» деп өзгертуді ұмытпаңыз, әйтпесе қате --secure-file-privбәрібір көрсетіле береді.

MySQL дерекқорын және оның кестелерін қалай тастау керек, сонымен қатар MySQL кестелерінен әртүрлі пішімдерге деректерді шығару жолы туралы бұл мақала аяқталады. Пікірлеріңізді түсініктемелерде жазыңыз және тәжірибеде жиі қолданатын барлық сценарий опцияларымен бөлісіңіз.

Егер сізге мақала ұнаса, мақаланы қайта орналастыру арқылы авторға алғыс айта аласыз әлеуметтік желілернемесе негізгі хостинг ақысын төлей алатындай етіп төмендегі пішінді пайдаланып қаржылық.

Барлығына сәттілік және жақын арада кездескенше! 🙂

P.S.: егер сізге веб-сайт қажет болса немесе бар веб-сайтқа өзгертулер енгізу қажет болса, бірақ оған уақыт пен тілек болмаса, мен өз қызметтерімді ұсына аламын.

5 жылдан астам тәжірибе кәсіби дамусайттар. -мен жұмыс істеу PHP

Қайырлы күн, әріптестер 🙂

Бүгін мен сізді 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 дерекқорын консоль арқылы толтыру жылдамырақ болып қана қоймай, бұл операцияны принципті түрде мүмкін етеді, өйткені сценарийлер мен бағдарламалар ең жоғары сценарийді орындау уақытына жеткенде импортты тоқтатуға бейім немесе жүктелген файл өлшеміне байланысты мүлде басталмайды.

Менің ойымша, phpMyAdmin көмегімен үлкен MySQL дерекқорына дампты жүктеп салуға тырысқандардың барлығы менің не туралы айтып тұрғанымды түсінеді.

Көбінесе бұл шектеулер MySQL дерекқорын импорттау кезіндегі қателердің себебі болып табылады, оны консольді пайдалану кезінде ешқашан көрмейсіз.

Әрине, олар тұрақты емес және оларды өзгертуге болады, бірақ бұл қосымша бас ауруы, айтпақшы, қарапайым пайдаланушылар үшін шешілмейтін болып шығуы мүмкін.

Мен сізге MySQL дерекқорын консоль арқылы импорттауға түрткі болдым деп үміттенемін (оның үстіне оның құрылымы да, жеке деректері де).

Және осы оң ескертуде біз көптен күткен тәжірибеге көшеміз және деректерді консольдегі дерекқорға тасымалдау әдістері мен пәрмендерін қарастырамыз.

MySQL дерекқорын консоль арқылы демптен қалай қалпына келтіруге болады?

Сонымен, MySQL демпін консольден орналастыру үшін екі жол бар:

  1. MySQL пәрмен жолындағы пәрменді пайдалану;
  2. сервер консолінің өзінде.

Тәртіппен бастайық.

Осылайша, MySQL дерекқорының демпін арқылы бар репозиторийге импорттау үшін алдымен оны іске қосып, өзіміздің дампымызды жүктеп салатын қалаған дерекқорды таңдауымыз керек.

Бұл әрекеттерді орындау жоғарыдағы сілтемедегі мақалада егжей-тегжейлі сипатталған, сондықтан олардың сипаттамасы қажет болса, оны сол жерден алыңыз, өйткені. Мен оларды екінші айналымда қайталағым келмейді.

Жоғарыдағы әрекеттерді орындағаннан кейін MySQL Shell ішіне келесі пәрменді енгізіңіз:

Бастапқы жол_және_дамп_файл аты;

Бізге қалғаны - консольдегі қоқыстағы операциялардың орындалу барысы туралы хабарламаларды зерттеу.

Алдымен қажетті дерекқорға ауыспай-ақ, консольдегі MySQL серверіне қосылғаннан кейін, дампты келесі пәрменмен импорттауға болады:

Mysql -u пайдаланушы аты -p дерекқор_аты< путь_и_имя_файла_дампа

Осымен болды. Ең бастысы, файл өте үлкен болса, импорттың аяқталуын күту. Демптің аяқталуын сервер консолі қашан қол жетімді болатынына қарай бағалауға болады.

Шын мәнінде, бұл кемшілік бұл әдісалдыңғысымен салыстырғанда, өйткені біріншісінде импорттау кезінде деректер базасында орындалатын операцияларды байқауға болады, ал екіншісінде олай емес.

Егер қоқыс файлы мұрағатқа буылған болса, жүктеп алу кезінде оны жол бойынан шығару керек болады.

Linux жүйесінде мұны келесідей жасауға болады:

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

В Windows стандартыконсольде мұрағатты ашуға арналған утилита жоқ, сондықтан оны қосымша орнату қажет болады.

Көріп отырғаныңыздай, MySQL демпін консоль арқылы импорттау - бір пәрменмен орындауға болатын өте қарапайым операция. Сондықтан бұл процедураны орындау үшін әзірлеуші ​​​​болудың қажеті жоқ.

Егер сіз кенеттен сервер консолін қалай іске қосу керектігін білмесеңіз, онда сіз бұл ақпаратты MySQL пәрмен жолындағы мақаладан таба аласыз, сілтеме бұрын менде болған.

Айтпақшы, сипатталған әдістерді қолдана отырып, бүкіл дерекқорды емес, MySQL кестесін импорттауға болады. Бұл жағдайда жүктеп салған қоқыс оны жасау және деректермен толтыру әрекеттерін қамтуы керек.

Деректерді MySQL дерекқорына консольдегі файлдан жүктеу

Біз MySQL дерекқорын консольдегі қоқыстан қалпына келтіру туралы айттық. Енді файлдардан деректерді, соның ішінде xls және csv файлдарынан MySQL дерекқорына бірдей жолмен қалай импорттауға болатынын анықтаудың уақыты келді.

Бұл тапсырма үшін бізде бұрынғы жағдайдағыдай екі құрал тағы бар: MySQL пәрмен жолы және сервер консолі.

Шолуды ретімен қайта бастайық.

Сонымен, MySQL пәрмен жолында файлды импорттау үшін біз оны қайтадан іске қосып, деректер жүктелетін дерекқорға барамыз.

ДЕРЕКТЕР INFILE "path_and_dump_file_name" КЕСТЕ `database_table` БАҒАНДАРҒА ЖҮКТЕЛУ «,» АРҚЫЛЫ АЯҚТАЛҒАН «\»» ЖОЛДАРМЕН ҚОСЫЛҒАН «\n» АРҚЫЛЫ АЯҚТАЛҒАН;

Егер MySQL сервері опциямен іске қосылған болса, мұны ұмытпаңыз --secure-file-priv(бұл WAMP/MAMP құрастыруларына енгізілген MySQL дистрибутивтерін пайдалану кезінде жиі орын алады), содан кейін файл атауы жүйелік айнымалы мәнді ескере отырып көрсетілуі керек safe_file_priv.

MySQL дерекқорын MySQL Shell ішіне кірмей сервер консоліне импорттау үшін бізге утилита қажет. mysqlimport MySQL дистрибутивінің бөлігі болып табылатын , және оған келесі шақыру:

mysqlimport -u пайдаланушы аты -p дерекқор_аты_аты_және_импорт_файлының_жолы

Бұл утилита SQL пәрменінің аналогы болып табылады ДЕРЕКТЕР INFILE ЖҮКТЕП АЛУ, тек пәрмен жолы. Бірақ, таң қалдырады, неге оның шақыруының параметрлері арасында файлдағы деректер жүктелетін кесте көрсетілмеген?

Шындығында, mysqlimport-та ​​бұл параметр физикалық түрде жоқ. Оның орнына деректер жүктелетін кестенің атауы импортталған файлдың атауында болуы керек.

Анау. импорттағыңыз келсе excel электрондық кестесі MySQL кестесінде пайдаланушылар, содан кейін файлыңыз аталуы керек users.xls.

Импортталған файлдың кеңейтімі, жоғарыда айтылғандай, кез келген болуы мүмкін.

Mysqlimport көмегімен MySQL-ге бірден бірнеше xls немесе csv файлдарын жүктеп салуға болады. Деректер тағайындалған жерге жету үшін алдыңғы мысалдағыдай деректер қорының файлдары мен кестелерінің атаулары да сәйкес болуы керек.

Егер кенеттен импортталған файлдағы бағандар дерекқор кестесінің бағандарымен бірдей реттілікте болмаса, олардың ретін нақтылау үшін келесі пішінде --columns опциясын пайдалану қажет:

Mysqlimport -u пайдаланушы аты -p дерекқор_аты --бағандар 1, баған2, ... импорт_файл_атауы және_жолы

Әрине, мен мысалдарымда ескермедім толық тізім mysqlimport параметрлері, себебі олардың кейбіреулері өте нақты және практикада сирек қолданылады.

Егер сіз олармен танысқыңыз келсе, олардың толық тізімі мына жерден қолжетімді - https://dev.mysql.com/doc/refman/5.7/en/mysqlimport.html

Деректерді MySQL дерекқорына демптен жүктеу мүмкіндіктері

Үлкен MySQL дерекқорын импорттау процесі жылдамырақ болғанын қаласаңыз, дерекқордың демпін жасауыңыз керек. арнайы опциялар MySQL дерекқорын экспорттау туралы алдыңғы мақаламда жазған mysqldump пәрмендері, сілтемені мәтінде бұрын жариялағанмын.

Өкінішке орай, MySQL дерекқор импорттау командаларының өзінде мұндай опциялар жоқ.

Жалғыз нәрсе - үлкен дерекқорды қотару кезінде жылдамдықты арттыру, сіз келесі мүмкіндікті пайдалана аласыз.

1. Дамп файлын ашыңыз (мүмкіндігінше файл менеджерлері, өйткені қарапайым редакторлар үлкен файлдардан өлуі мүмкін).

2. Файлдың басына келесі жолдарды жазамыз:

SET Foreign_key_checks = 0; UNIQUE_CHECKS ОРНАТУ = 0; AUTOCOMMIT ОРНАТУ = 0;

Назар аударыңыз! Мүмкін олар қазірдің өзінде бар немесе түсініктеме берді (қоқыстарды жасайтын көптеген бағдарламалар оларды автоматты түрде қоса алады)

3. Файлдың соңында кері әрекеттерді жазыңыз:

SET Foreign_key_checks = 1; UNIQUE_CHECKS ОРНАТУ = 1; AUTOCOMMIT ОРНАТУ = 1;

Айтпақшы, бұл пәрмендер импорттау процесін жылдамдатуға ғана емес, сонымен бірге мүмкіндік береді.

Егер сіз MySQL дерекқорын импорттау үшін демп файлын қарасаңыз, жүктелген кестелердің құрылымын орнату операциясы келесідей көрінетінін байқаған боларсыз:

'клиенттер' бар болса, КЕСТЕНДІ ТАРТЫҢЫЗ; CREATE TABLE `клиенттер` (...);

Анау. деректер базасында импортталған кестемен бірдей атаумен іздеу жүргізіледі, егер табылса, ол жойылады және қайта жасалады.

Егер кенеттен бұрыннан бар кесте басқалармен сыртқы кілттермен қосылса, онда барлық жүктеме сәтсіздікке ұшырайды.

Сондықтан бар тексеруді өшіру шетелдік кілттержәне басқалары да MySQL деректер базасын импорттау процесінің сәтті аяқталуының тамаша кепілі болып табылады.

MySQL дерекқорына және басқа файлдарға csv импорттау мүмкіндіктері

MySQL дерекқорына деректерді жүктеу кезінде мәтіндік файлдарсыртқы кілттерді өшіру қажет болуы мүмкін.

Оның үстіне, алдыңғы жағдайдан айырмашылығы, бұл жағдайда файлға директиваларды жазу жұмыс істемейді, өйткені Ондағы SQL пәрмендері қабылданбайды және орындалмайды.

MySQL дерекқорын экспорттау туралы алдыңғы мақалада мен мұны MySQL пәрмен жолында келесі операцияны пайдаланып қалай жасау керектігін айттым:

FOREIGN_KEY_CHECKS ОРНАТУ=0;

Дегенмен, мен бұл жерде MySQL жүйесінің айнымалысы туралы айтқан жоқпын Сыртқы_кілт_тексерулерекі мағынасы бар: жаһандық және сеанс (ағымдағы сеанс үшін).

MySQL айнымалыларының жаһандық мәні MySQL серверінде орындалған кез келген әрекетке, оның ішінде серверді қайта іске қосуға дейін әрекет етеді. Содан кейін айнымалы мәндер қалпына келтіріліп, оларға әдепкі мәндер тағайындалады.

MySQL жүйелік айнымалысының сеанс мәні пайдаланушының MySQL серверімен сеансының ұзақтығына ғана орнатылады. Сеанс немесе сеанс клиент серверге қосылған кезде басталады, оған бірегей сервер тағайындалады қосылым идентификаторы, және серверден ажыратылған кезде аяқталады, ол кез келген уақытта орын алуы мүмкін (мысалы, күту уақыты бойынша).

Неліктен мен мұны есте сақтауды шештім?

Өйткені MySQL Shell жүйесіне кірмей сервер консолі арқылы MySQL дерекқорына файлды жүктеу пәрмендерін орындау кезінде мен сыртқы кілтті тексеруді бұрын сипатталған әдіспен өшіру жұмыс істемейтінін анықтадым.

Консоль әлі де кестеде сыртқы кілттердің болуына байланысты қате туралы хабарды көрсетті.

Жоғарыда аталған команда жаһандық емес, сеанс ішінде сыртқы кілттердің бар-жоғын тексеруді өшіргендіктен пайда болды, бұл көрсетілген әдіс, сонымен қатар келесідей орындалуы мүмкін:

SET SESSION айнымалы_атауы = айнымалы_мән; SET @@session.variable_name = айнымалы_мән; SET @@айнымалы_атауы = айнымалы_мән;

Жоғарыдағы пәрмендерде айнымалы мән сеанс айнымалысы ретінде анық белгіленген.

Мен CSV файлын MySQL кестесіне сервер консолі арқылы тікелей қосылмай жүктеп жатқандықтан MySQL сервері, содан кейін айнымалының сеанс мәні жұмыс істейтін сеанс жасалмады.

Мен FOREIGN_KEY_CHECKS жаһандық мәнін орнатуды аяқтадым және импорт сәтті аяқталды.

Мұны келесі жолдардың бірімен орындауға болады:

SET GLOBAL айнымалы_атауы = айнымалы_мән; SET @@global.variable_name = айнымалы_мән;

Мәндерді өзгерткеннен кейін өзгертулердің күшіне енгенін тексеру үшін айнымалы мәндерді қарап шығу артық болмайды. Сеанс пен жаһандық мәндерді бір уақытта көрсету үшін келесі пәрменді пайдаланыңыз:

@@GLOBAL.foreign_key_checks, @@SESSION.foreign_key_checks ТАҢДАУ;

Бұл MySQL дерекқорын импорттау туралы бүгінгі мақаланы аяқтайды. Түсініктемелерде өз әсерлеріңіз бен тәжірибеңізбен бөлісіңіз. Көптеген адамдар сіздің тәжірибеңізге қызығушылық танытады деп ойлаймын.

Келесі кездескенше! 🙂

P.S.: егер сізге веб-сайт қажет болса немесе бар веб-сайтқа өзгертулер енгізу қажет болса, бірақ оған уақыт пен тілек болмаса, мен өз қызметтерімді ұсына аламын.

5 жылдан астам тәжірибекәсіби веб-сайтты әзірлеу. -мен жұмыс істеу PHP, ашық арба,

Веб-сайтты алғаш рет жасай бастағанда, оны әдетте жергілікті серверде жасайсыз. Ол дайын болғанда, оны қашықтағы серверге жылжыту қажет болады. Файлдарды көшіру оңай, міне, осылай импорттық дерекқорқашықтағы серверге? Дәл осы туралы phpmyadmin-де дерекқорды қалай импорттауға боладыМен сізге осы мақалада түсіндіремін.

Көптеген жолдар бар дерекқор импорты, дегенмен, мен сізге ең қарапайым, менің ойымша, мен өзім қолданатынын айтып беремін.

1-қадам

Ең алдымен сізге қажет экспорттық дерекқорағымдағы орыннан (атап айтқанда, жергілікті серверден). Біздің мақсатымыз - алу SQL сұрауыбіздің дерекқорымыз. Ол үшін келесі әрекеттерді орындаңыз:

2-қадам

Екінші және соңғы қадам - ​​орындау SQL сұрауысіз көшірген PHPMyAdmin, ол сізге қажет серверде орналасқан импорттық дерекқор. Ол үшін мына қадамдарды орындаңыз:

Нәтижесінде, барлық жазбалары бар барлық кестелер жаңа серверде жасалады.

Көріп отырғаныңыздай, процесс PHPMyAdmin ішіндегі дерекқорды экспорттау және импорттауминимумға дейін жеңілдетілген, сондықтан мұнымен ешқандай проблемалар болмайды.

Соңында мен сізге тағы бір кеңес бергім келеді. Өйткені, сізге қажет болған жағдай жиі кездеседі толық дерекқорды емес импорттау, және, мысалы, тек бір кесте. Сонда принцип мүлдем бірдей, тек экспорттау кезінде тек дерекқорды ғана емес, сонымен қатар экспортқа арналған кестені де таңдау керек. Содан кейін қайтадан жоғарғы мәзірде « Экспорттау". Сонда бәрі бұрынғыдай дерекқор импорты.

Менен үлкен MySQL дерекқорын серверге қалай импорттауға болатынын жиі сұрайды. Әдепкі бойынша phpMyAdmin-де импортталған дерекқордың өлшеміне шектеулер бар екені белгілі.

Егер сіздің қоқысыңыз рұқсат етілген шектен көп аспаса, оны бірнеше бөлікке бөліп, бірнеше өту арқылы импорттай аласыз. Бұл, мысалы, шектеу 2 Мб болса және сіздің дерекқорыңыз өлшемі 5-10 Мб болса, ақталады. 100 МБ дерекқорды 50 бөлікке «қию» уақыт ресурстары тұрғысынан біршама уақытты қажет ететін және қымбат процесс екені анық.

Бұл мәселені шешудің бірнеше нұсқасы бар.

Веб-сервер конфигурациясын өңдеу

VDS / VPS-те бұл мәселеде ерекше проблемалар жоқ, тек конфигурацияны түзету керек. Атап айтқанда, php.ini-де серверге жүктелген файлдар үшін рұқсат етілген максималды мәндерді көбейтіңіз, максималды өлшем POST әдісімен тасымалданатын файлдар үшін:

Post_max_size = 2000M upload_max_filesize = 2000M

Бұған қоса, егер сіздің дерекқорыңыз өте үлкен болса, сценарийдің рұқсат етілген ең көп орындалу уақытын көбейтуіңіз керек.

максималды_орындау_уақыты = 32000 ең көп_енгізу_уақыты = 32000

Жағдайда сіз ЖЖҚ рұқсат етілген көлемін ұлғайта аласыз:

жад шегі = 512М

Өзгерістерді енгізгеннен кейін веб-серверді қайта іске қосуды ұмытпаңыз.

Бұл әдіс виртуалды хостинг үшін қолайлы емес екені анық, өйткені. бұл конфигурацияларды өңдеу мүмкіндігін білдірмейді.

Sypex самосвалы

Сіз пайдалана аласыз үшінші тарап бағдарламалық құралы. Назар аударуға тұрарлық бірінші қолданба - Sypex Dumper.

Оны көп жылдар бұрын алғаш рет қолданып, оның барлық мүмкіндіктері мен артықшылықтарын бағалағандықтан, мен оны «Бар болуы керек» деп қауіпсіз түрде белгілей аламын. Sypex Dumper – орнатуды қажет етпейтін PHP сервер қолданбасы. Оны, мысалы, sxd каталогындағы сайттың түбіріне көшіріп, браузерде мынаны шақыру жеткілікті: http://Your_Site/sxd/. Айта кету керек, алдымен сақтық көшірме каталогында дерекқордың демпін орналастыру керек. Сценарий инициализацияланғаннан кейін дерекқорға қосылу үшін авторизация тақтасын көресіз. Логин мен парольді енгізіңіз. Хост пен порт арнайы болса ғана міндетті емес.

Авторизациядан кейін дерекқорды импорттауға тікелей өтуге болады. Алаңда «Мәліметтер базасы»Сіз қосылған дерекқор таңдалады және өрісте «Файл»сақтық көшірме каталогына бұрын жүктеп салған дампты көресіз.

Көп жағдайда, жоқ қосымша параметрлеренді қажет емес және «Іске қосу» түймесін басу арқылы импорттауды қауіпсіз бастауға болады. Дерекқордың өлшеміне және Интернетке қосылу жылдамдығына байланысты импорттау біраз уақыт алуы мүмкін. Импорттау кезінде нақты қай кестелер импортталып жатқанын көре аласыз осы сәтнегізге. Сценарийді аяқтағаннан кейін сіз орындау журналын көресіз. Бұл келесідей көрінеді:

Бұл, шын мәнінде, бәрі - деректер базасы импортталады!

Консоль

Консоль арқылы импорттау қарастырылмайды. Менің ойымша, консольді менсіз пайдаланатын адамдар кез келген дерекқорды импорттауды біледі. А қарапайым пайдаланушыларарнайы дайындықсыз ол жерге араласпаған дұрыс. Кейбір пәрмендерді орындау сервердің толық бұзылуына дейін ауыр зардаптарға әкелуі мүмкін.

Қорытындылай келе

Мен Sydex Dumper жалғыз және дұрыс шешім деп айта алмаймын. Пайдаланушыдан белгілі бір білімді және сервер параметрлеріне сәйкес қол жеткізуді талап ететін басқа да талғампаз әдістер бар.

Бірақ ортақ хостинг ортасында Sydex Dumper сіздің таптырмас көмекшіңіз болады.

Менің телеграмыма жазылыңыз және жаңа материалдарды, соның ішінде сайтта жоқ материалдарды бірінші болып алыңыз.

Мақала ұнады ма? Достарыңызбен бөлісіңіз!
Бұл мақала пайдалы болды ма?
Иә
Жоқ
Пікіріңізге рахмет!
Бірдеңе дұрыс болмады және сіздің дауысыңыз есептелмеді.
Рақмет сізге. Сіздің хабарламаңыз жіберілді
Мәтіннен қате таптыңыз ба?
Оны таңдаңыз, басыңыз Ctrl+Enterжәне біз оны түзетеміз!