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

Деректерді MySQL-ге қалай экспорттауға болады. phpMyAdmin шектеулерін айналып өтіп, үлкен MySQL дерекқорын қалай импорттауға болады

Бұл процедура деректерді бір дерекқордан (A) екіншісіне (B) тасымалдауды қамтиды. Әдетте, В деректер базасы орналастырылған (немесе Денвер), ал А деректер қоры пайдаланушының компьютерінде орналасқан және sql кеңейтімі бар файл болып табылады. А дерекқорының басқа атауы бар - Dump.

Деректер базасын қалай импорттауға болады?

SSH көмегімен MySQL дерекқорын импорттау

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

mysql -uUSERNAME -pUSERPASSWORD DBNAME< DUMPFILENAME.sql

mysql --user=USERNAME --password=USERPASSWORD ДҚ АТЫ< DUMPFILENAME.sql

Бас әріппен жазылған сөздердің орнына келесі сөздерді қоямыз:
USERNAME - дерекқордың пайдаланушы аты, мысалы uhosting_databaseuser;

USERPASSWORD – дерекқор пайдаланушысының құпия сөзі, мысалы Rjkweuik12;

DBNAME - импортталатын дерекқордың атауы, мысалы, uhosting_databasename

DUMPFILENAME – деректер импортталатын дамп файлының аты. Мұнда сонымен қатар хостинг провайдерінің серверіне жүктеп салған дерекқорға жолды көрсету керек.

Егер сіз жасаған болсаңыз сақтық көшірменемесе дерекқорды SQL файлына экспорттасаңыз, оны дерекқорлардың біріне импорттай аласыз MySQL деректері phpMyAdmin арқылы хостинг тіркелгіңіз.

Ескерту. MySQL дерекқорында CREATE DATABASE жолы болмауы керек. AT әйтпесеимпорт сәтсіз болуы мүмкін.

PhpMyAdmin интерфейсі бір уақытта 8 МБ деректерді импорттауға мүмкіндік береді. Үлкенірек файлды импорттау қажет болса, оны бірнеше 8 МБ бөліктерге бөліңіз.

Назар аударыңыз!Веб-сайтыңыздың үздіксіз жұмысын қамтамасыз ету үшін басқарылатын WordPress хостингіне арналған дерекқорды импорттап жатсаңыз.

SQL файлдарын phpMyAdmin көмегімен MySQL дерекқорларына импорттау

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

Ескерту.Сценарийдің күту уақыты аяқталды деген қате туралы хабар алсаңыз, импорттауды аяқтағыңыз келсе, сол файлды қайта жіберіңіз және импорт жалғасады, сол файлды бірден таңдап, процесті қайта бастауға болады.

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

Бүгін мен консольде 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Тек Windows жүйесінде жұмыс істейтін Excel бағдарламасы, ал 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

Қайырлы күн достар, бүгін біз қалай істеу керектігін үйренеміз. Бұл не үшін, сіз сұрақ қоя аласыз. Ең алдымен дерекқорды экспорттаутөтенше жағдайларда сіз үшін маңызды ақпаратты жоғалтпау үшін мерзімді түрде орындалуы керек. Экспорт дерекқор туралы барлық ақпаратты сақтайтын шағын файл болады. Үшін дерекқорды экспорттау PHPMyAdmin сайтына өтіп, сізді қызықтыратын дерекқорды басу керек. Осыдан кейін сіз ондағы барлық кестелерді көресіз және оларға кірмей, экспорт деп аталатын мәзір түймесін басыңыз. Сіздің алдыңызда келесі бет пайда болады:


таңдауға кеңес беремін жылдам жолэкспорттау, сондай-ақ форматта көрсету SQL. Осыдан кейін OK түймесін басуға болады. Сіз файлды сақтауды сұрайтын терезені көресіз.


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


Біз сіздің компьютеріңіздің шолуын таңдаймыз және файлымызға жолды көрсетеміз. Және OK түймесін басыңыз. Көріп отырғаныңыздай, сізде қате бар. Қорықпаңыз, мәселе мынада, біз дерекқордың өзін емес, оның барлық кестелерін ғана импорттадық. Сондықтан алдымен дерекқорды жасаңыз, оған кіріп, жоғарыда айтылғандардың барлығын орындап, импорттау түймесін басыңыз. «ОК» түймесін басу арқылы сіз сәттілікке жетесіз және егер сіз бәрін дұрыс орындасаңыз, қателер пайда болмауы керек.


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

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

Бүгін мен сізді 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

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

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

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

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

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

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

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

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

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

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

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

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