Еркін қол жетімді жетекші дерекқорлардың бірі ретінде MySQL көптеген веб-қосымшалар үшін танымал таңдау болып табылады. Интернетке ұшырағандықтан, қолданбаңыз зиянды шабуылдарға ұшырайды. Егер сіздің серверіңіз бұзылса, ең жақсы жағдайда қолданбаны қайта орнату қажет; ең нашар жағдайда, деректеріңізді жоғалтуыңыз мүмкін. Бұған қоса, дерекқорды бір серверден екіншісіне көшіру қажет болатын жағдайға тап болуыңыз мүмкін.
mysqldump не үшін пайдаланылады?
Mysqldump құралы серверді бұзу және тасымалдау жағдайларын қарастырады. Оның негізгі функциясы MySQL дерекқорын алу және оны мәтіндік файл ретінде шығару. Бірақ кез келген мәтіндік файл емес; файл SQL операторларының жиыны болып табылады. Бұл мәлімдемелер орындалған кезде дерекқорды демп орындалған кездегі дәл күйге қайта құрастырады.
Дерекқор экспортын сақтық көшірме ретінде жасау үшін немесе дерекқорды жаңа хостқа жылжытқанда mysqldump пайдаланыңыз. Кез келген жағдайда мәтіндік файл MySQL дерекқор серверіне қайта импортталады. Ол дерекқорды бастапқы күйіне қайтаратын файлдағы барлық SQL мәлімдемелерін орындайды. Бұл бөлік mysqldump пәрменін пайдаланбайды, бірақ бұл қызметтік бағдарламасыз да мүмкін емес.
MySQL құжаттарында сақтық көшірме жасаудың басқа әдістері көрсетілген, бірақ олардың кемшіліктері бар:
- MySQL Enterprise-тен дерекқорды жылдам көшіру - бұл сақтық көшірмелерге қол жеткізудің тамаша тәсілі - егер Enterprise баға тегіне қарсы болмасаңыз.
- Дерекқор деректерінің каталогтарын көшіру операциялық жүйелерде жылжу кезінде қиын болуы мүмкін, себебі тағайындалған орындар әртүрлі болады.
- Бөлінген мәтіндік файлға экспорттау сізге мазмұнды береді, бірақ құрылымды қайта жасауыңыз керек.
- Сіз жиі MySQL Workbench сияқты GUI бағдарламаларынан дерекқорлардың сақтық көшірмесін жасай аласыз. Бірақ бұл қолмен орындалатын процесс; сценарий жасауға немесе пакеттік тапсырмаға қосуға болатын нәрсе емес.
mysqldump құралын орнатыңыз
Windows жүйесінде MySQL жүйесін Windows 7 жүйесіне орнату нұсқауларымызды тексеріңіз (орнату процесі Windows 10 үшін бірдей). MacOS жүйесінде MySQL жүйесін macOS 10.7 жүйесіне орнату нұсқауларымызды қараңыз (қайтадан ескі, бірақ әлі де жарамды). Ubuntu негізіндегі Linux жүйелерінің пайдаланушылары MySQL клиенті мен утилиталарын орнату үшін келесі пәрменді пайдалана алады:
sudo apt mysql-client орнату
MySQL демпін шығарып алыңыз
Орнатылғаннан кейін дерекқордың толық сақтық көшірмесін алу үшін mysqldump пайдаланыңыз.
mysqldump -h [ДҚ хостыңыздың аты немесе IP] -u [ДҚ пайдаланушысының аты] -p [Дерекқор атауы] > db_backup.sql
Осы пәрменде қолданылған жалаушалардың сипаттамасы берілген:
- - h: Бұл жалау дерекқор хосты болып табылады. Бұл толық хост атауы (мысалы, myhost.domain.com) немесе IP мекенжайы болуы мүмкін. Егер пәрменді MySQL серверімен бір хостта іске қоссаңыз, оны бос қалдырыңыз.
- - u: Пайдаланушы атыңыз.
- - p: MySQL орнатуын дұрыс қорғаған болсаңыз, қосылу үшін құпия сөз қажет болады. Аргументі жоқ бұл жалауша пәрменді орындаған кезде құпия сөзді сұрайды. Кейде құпия сөзді осы жалаушаның аргументі ретінде тікелей беру пайдалы, мысалы, сақтық көшірме сценарийінде. Бірақ сұрау кезінде мұны істеудің қажеті жоқ, себебі біреу сіздің компьютеріңізге кірген болса, олар бұл құпия сөзді пәрмендер журналында алуы мүмкін.
- > db_backup.sql: Бұл бөлім mysqldump-қа өз шығысын файлға бағыттау керектігін айтады. Әдетте, пәрмен барлығын консольге шығарады, яғни экранда бірнеше SQL мәлімдемелерін көресіз. > таңбасы шығысты аталған мәтіндік файлға айналдырады. Бұл файл жоқ болса, ол автоматты түрде жасалады.
Ол аяқталған кезде сізде. SQL файлы болады. Бұл SQL мәлімдемелері бар мәтіндік файл. Мазмұнды тексеру үшін оны кез келген мәтіндік редакторда ашуға болады. Бұл файлдардың қалай біріктірілетінін көрсететін WordPress дерекқорынан экспортталады.
Файл бөлімдерге бөлінген. Бірінші бөлім WordPress түсініктемелері үшін кестені орнатады. Екінші бөлім сол кестелердегі мазмұнды қайта жасайды (бұл мысалда түсініктеме жазбалары). MySQL демпін қайта импорттаған кезде, пәрмен файл арқылы жұмыс істейді, мәлімдемелерді орындайды және дерекқорды бұрынғыдай қайта құрады.
MySQL демп файлын импорттау
Дамп файлын импорттамас бұрын бұрыннан жасалған дерекқор және оның жарамды пайдаланушы аты мен құпия сөзі қажет. Сондай-ақ дерекқорға барлық рұқсаттарыңыз болуы керек. Сізге GRANT рұқсаты қажет емес, бірақ олардың барлығын беру оңайырақ.
Дерекқордағы қауіпсіздік рөлдерін өзгертпес бұрын дерекқор рұқсаттары туралы толығырақ ақпарат алыңыз.
Деректерді қайта импорттау үшін MySQL серверіне mysql пәрменімен кіріңіз. Сұрауда us [деректер базасының атауы] деп теріп, дерекқордың атын ауыстырыңыз. көз [файл атауы] енгізіңіз және бұрын алған демп файлының атын ауыстырыңыз.
Аяқтаған кезде, SQL мәлімдемелерінің орындалып жатқанын ескертетін хабарлар тізімі пайда болады. Қателерді қадағалаңыз, бірақ дұрыс рұқсаттарыңыз болса, бәрі жақсы.
Процесс аяқталғанда, сізде бастапқы дерекқордың көшірмесі болады. Дерекқорлар арасындағы ұқсастықты тексеру үшін басқа дампты орындап, екі нәтижені салыстырыңыз. Екі файлды салыстыру үшін мәтін өңдегішін немесе арнайы дифференция құралын пайдаланыңыз.
Оң жақ айналдыру жолағының жоғарғы және төменгі жағындағы қызыл сызықтармен көрсетілгендей, бұл файлдар арасында екі айырмашылық бар. Біріншісі - дерекқор атауын қамтитын жол және бұл басқа, себебі файлдар басқаша аталды. Екіншісі - демп файлының уақыт белгісі. Бұл басқаша, себебі екінші дерекқор біріншіден кейін қайта жасалды. Әйтпесе, файлдар бірдей, яғни оларды жасаған дерекқорлар да.
ЖҚС
mysqldump қатесін қалай түзетесіз: Құлыптау кестелерін пайдалану кезінде кіруге тыйым салынды?
Дерекқор әкімшісінен сізге LOCK артықшылығын беруін сұраңыз. Бұл мәселені шешпесе, - -single-transaction жалаушасын қосып, бірдей mysqldump пәрменін іске қосып көріңіз, мысалы, [ $ mysqldump --single-transaction] [-u пайдаланушы] [-p DBNAME] > backup.sql
Сіз mysqldump көмегімен "қайда" сөйлемін пайдалана аласыз ба?
Берілген шартты орындайтын жолдарды ғана қамтитын сақтық көшірме жасау кезінде WHERE сөйлемін пайдаланыңыз. Мысалы, идентификатор бағанасы 100-ден асатын жолдардан ғана деректерді көшіру үшін "mysqldump my_db_name my_table_name --where="id > 100" > my_backup.sql" енгізіңіз.