Εισαγωγή βάσεων δεδομένων mysql. Εξαγωγή και εισαγωγή βάσης δεδομένων στο PHPMyAdmin

24.03.2023

Καλησπέρα φίλοι, σήμερα θα μάθουμε πώς να φτιάξουμε... Γιατί χρειάζεται αυτό, μπορείτε να ρωτήσετε. Προπαντόςεξαγωγή βάσης δεδομένων πρέπει να γίνεται περιοδικά, ώστε σε καταστάσεις έκτακτης ανάγκης να μην χάνετε σημαντικές πληροφορίες. Η εξαγωγή θα είναι ένα μικρό αρχείο στο οποίο θα αποθηκεύονται όλες οι πληροφορίες σχετικά με τη βάση δεδομένων. Γιαεξαγωγή βάσης δεδομένων


πρέπει να μεταβείτε στο PHPMyAdmin και να κάνετε κλικ στη βάση δεδομένων που σας ενδιαφέρει. Μετά από αυτό, θα δείτε όλους τους πίνακες σε αυτό και, χωρίς να μπείτε σε αυτούς, κάντε κλικ στο κουμπί μενού που ονομάζεται εξαγωγή. Η παρακάτω σελίδα θα εμφανιστεί μπροστά σας: Σας συμβουλεύω να επιλέξετεγρήγορος τρόπος εξαγωγή και υποδεικνύεται επίσης στη μορφή SQL


. Μετά από αυτό μπορείτε να κάνετε κλικ στο ok. Θα εμφανιστεί ένα παράθυρο μπροστά σας στο οποίο θα σας ζητηθεί να αποθηκεύσετε το αρχείο.
Αποθηκεύετε το αρχείο στη θέση που χρειάζεστε, το κύριο πράγμα είναι να θυμάστε πού το αποθηκεύσατε, γιατί είναι πολύ σημαντικό για εμάς. Όσο για την κανονική μέθοδο εξαγωγής. Μπορείτε επίσης να το χρησιμοποιήσετε αν το χρειάζεστε, είναι πολλάπρόσθετες ρυθμίσεις , το οποίο μπορείτε να καθορίσετε κατά την εξαγωγή. Για παράδειγμα, επιλέξτε τους απαραίτητους πίνακες από τη βάση δεδομένων, καθορίστε την κωδικοποίηση και πολλά άλλα. Αν σε ενδιαφέρειαυτή τη ρύθμιση
, Μπορείτε να το παρακολουθήσετε. Αλλά δεν θα εμβαθύνουμε σε αυτό το σκηνικό.
Αφού αποθηκεύσετε το αρχείο στον υπολογιστή σας, θα σας ζητήσω να διαγράψετε τη βάση δεδομένων. Δεν θα σας εξηγήσω πώς να το κάνετε αυτό, γιατί το έχουμε ήδη περάσει. Μην φοβάστε να διαγράψετε, θα επιστρέψουμε τα πάντα στη θέση τους μαζί σας. Ήρθε η ώρα να ασχοληθείτεεισαγωγή βάσης δεδομένων


. Μεταβείτε στο μενού εισαγωγής.


Επιλέγουμε μια επισκόπηση του υπολογιστή σας και υποδεικνύουμε τη διαδρομή προς το αρχείο μας. Και κάντε κλικ στο ok. Όπως μπορείτε να δείτε, εμφανίστηκε ένα σφάλμα μπροστά σας. Μην ανησυχείτε, το όλο θέμα είναι ότι δεν εισαγάγαμε την ίδια τη βάση δεδομένων, αλλά μόνο όλους τους πίνακες της. Επομένως, δημιουργήστε πρώτα μια βάση δεδομένων, μεταβείτε σε αυτήν και κάντε κλικ στο κουμπί εισαγωγής, έχοντας κάνει όλα τα παραπάνω. Πατώντας το κουμπί ok, όλα θα λειτουργήσουν και αν τα κάνατε όλα σωστά, δεν θα εμφανιστούν σφάλματα. Όπως μπορείτε να δείτε, ο πίνακάς μας επανεμφανίστηκε στη θέση του και όλα τα δεδομένα σε αυτόν έχουν αποθηκευτεί. Τώρα καταλαβαίνετε τι υπέροχη ευκαιρίαεξαγωγή και εισαγωγή βάσης δεδομένων στο PHPMyAdmin . Εξάλλου, αν χάσεις σε μια μέρα όλα τα επιτεύγματά σου για πολλά χρόνια, χάρη σεαυτό το αρχείο

Μπορείτε να πάρετε τα πάντα πίσω. Με αυτό σας αποχαιρετώ και τα λέμε σύντομα.

Σήμερα θα συνεχίσω να σας παρουσιάζω την εργασία με τη MySQL στην κονσόλα και τη γραμμή εντολών της MySQL.

Έχω ήδη γράψει άρθρα σχετικά με τον τρόπο εκτέλεσης βασικών ενεργειών με δεδομένα MySQL μέσω της κονσόλας και τον τρόπο δημιουργίας αντιγράφων ασφαλείας της βάσης δεδομένων MySQL, καθώς και την εξαγωγή των πληροφοριών που είναι αποθηκευμένες σε αυτήν.

Η λογική συνέχεια αυτής της ιστορίας θα είναι η αποκατάσταση της βάσης δεδομένων και των πληροφοριών που είναι αποθηκευμένες σε αυτήν χρησιμοποιώντας λειτουργίες εισαγωγής βάσης δεδομένων Δεδομένα MySQL. Και, κυρίως, θα συνεχίσουμε να το κάνουμε αυτό χρησιμοποιώντας το εργαλείο όλων των πραγματικών προγραμματιστών - μέσω της κονσόλας.

Εάν χρειάζεστε οδηγίες για την εισαγωγή μιας βάσης δεδομένων μέσω phpMyAdmin, τότε μπορείτε να τη βρείτε στο άρθρο σχετικά. Στο τρέχον άρθρο, δεν είμαι πρόθυμος να το περιγράψω ξανά, ειδικά επειδή το σημερινό υλικό θα είναι αφιερωμένο αποκλειστικά στην εισαγωγή της βάσης δεδομένων MySQL μέσω της κονσόλας.

Όμως, προτού αρχίσουμε να εξετάζουμε μεθόδους και εργαλεία, λίγα λόγια για το τι είναι η εισαγωγή μιας βάσης δεδομένων MySQL, πώς είναι και πώς να το κάνουμε καλύτερα;

Εισαγωγή βάσης δεδομένων MySQL: τι και γιατί;

Η εισαγωγή μιας βάσης δεδομένων MySQL είναι μια λειτουργία που γεμίζει τη βάση δεδομένων με πληροφορίες. Σε αυτήν την περίπτωση, η προέλευση δεδομένων είναι ένα αρχείο ένδειξης σφαλμάτων - ένα στιγμιότυπο μιας άλλης βάσης δεδομένων, που δημιουργείται αυτόματα κατά τη λειτουργία εξαγωγής ή ένα ειδικά προετοιμασμένο σενάριο SQL.

Η εισαγωγή, καθώς και η εξαγωγή της βάσης δεδομένων MySQL, υπάρχουν δύο τύποι πληροφοριών που αποθηκεύονται στη βάση δεδομένων:

  1. τη δομή της βάσης δεδομένων, τους πίνακες της και τα δεδομένα που είναι αποθηκευμένα σε αυτούς (κοινώς αποκαλούμενα βάση δεδομένων).
  2. απλά δεδομένα που αποθηκεύονται σε έναν πίνακα ή συλλέγονται χρησιμοποιώντας ΕΠΙΛΕΓΩαιτήματα.

Αυτό το άρθρο θα συζητήσει και τις δύο επιλογές.

Για να επαναφέρετε μια βάση δεδομένων MySQL με τη δομή της και όλες τις αποθηκευμένες πληροφορίες από ένα dump, όπως αναφέρθηκε ήδη, χρειάζεστε ένα αρχείο ένδειξης σφαλμάτων βάσης δεδομένων, το οποίο είναι ένα αρχείο κειμένου με οποιαδήποτε επέκταση (μπορεί να συσκευαστεί εκ των προτέρων σε ένα αρχείο για μείωση του μεγέθους) που περιέχει Εντολές SQLγια τη δημιουργία της ίδιας της βάσης δεδομένων και πινάκων, καθώς και τη συμπλήρωσή τους με πληροφορίες.

Επομένως, για να επαναφέρετε μια βάση δεδομένων MySQL από ένα dump, πρέπει να εκτελέσετε τις εντολές που περιέχονται στο αρχείο.

Για την τακτική ανάκτηση δεδομένων, τέτοιες επιπλοκές δεν είναι απαραίτητες. Αρκεί να έχετε διαθέσιμο ένα δοκιμαστικό αρχείο, οι πληροφορίες στο οποίο θα είναι δομημένες με τον ίδιο τρόπο όπως στον πίνακα της βάσης δεδομένων: ο αριθμός των στηλών με πληροφορίες αντιστοιχεί στον αριθμό των χαρακτηριστικών εγγραφής πίνακα.

Για τους σκοπούς αυτούς, είναι επίσης κατάλληλο ένα κανονικό. txt, τα δεδομένα στα οποία θα χωριστούν ή τα αρχεία που δημιουργούνται σε ειδικές συντάκτες υπολογιστικών φύλλων (Microsoft Office Excel, OpenOffice κ.λπ.) με εξαιρετική επέκταση: xls, csv, odt κ.λπ.

Αυτές οι μορφές είναι ακόμη προτιμότερες, γιατί Κατά τη δημιουργία τους, οι οριοθέτες δεδομένων προστίθενται αυτόματα από τους συντάκτες και δεν χρειάζεται να εισάγονται ξεχωριστά, όπως στην περίπτωση ενός κανονικού αρχείου κειμένου.

Προσθήκη δεδομένων στη MySQL: Εργαλεία

Σχετικά με τα εργαλεία εισαγωγής μιας βάσης δεδομένων MySQL, μπορώ να πω ότι σήμερα υπάρχουν τρία από αυτά.

Θα τα απαριθμήσω, ξεκινώντας από το χαμηλότερο επίπεδο και τελειώνοντας στο υψηλότερο επίπεδο (από την άποψη της χρήσης όλων των ειδών κελύφους και πρόσθετων):

  1. Κονσόλα διακομιστή και γραμμή εντολών MySQL.
  2. Σενάρια γραμμένα σε γλώσσες προγραμματισμού που σας επιτρέπουν να καταγράφετε δεδομένα στη MySQL χρησιμοποιώντας γλωσσικά εργαλεία.
  3. Έτοιμα προγράμματα που παρέχουν μια οπτική διεπαφή για εργασία με τη βάση δεδομένων (το ίδιο phpMyAdmin, MySQL WorkBench, MySQL Manager κ.λπ.).

Νομίζω ότι η σειρά των εργαλείων δεν θα δημιουργήσει ερωτήσεις σε κανέναν, γιατί... Τα εργαλεία γλώσσας προγραμματισμού, κατά κανόνα, λειτουργούν με βάση τις εντολές της κονσόλας MySQL και τα προγράμματα βασίζονται σε σενάρια ή λειτουργούν απευθείας με τη MySQL από τη γραμμή εντολών.

Με τον ένα ή τον άλλο τρόπο, η κονσόλα βρίσκεται στην πρώτη γραμμή των πάντων και τα υπόλοιπα εργαλεία είναι, στην πραγματικότητα, οι εξομοιωτές της.

Επομένως, η χρήση της κονσόλας κατά την εισαγωγή δεδομένων στο MySQL σάς επιτρέπει να παρακάμψετε διάφορα είδη περιορισμών που ορίζονται από τις ρυθμίσεις των γλωσσών προγραμματισμού στο Διακομιστής Ιστούκαι τα ίδια τα προγράμματα (τα οποία, παρεμπιπτόντως, δεν μπορούν πάντα να αλλάξουν).

Λόγω αυτού, μπορείτε όχι μόνο να φορτώσετε μια βάση δεδομένων MySQL μέσω της κονσόλας πιο γρήγορα, αλλά και να κάνετε αυτή τη λειτουργία δυνατή κατ' αρχήν, επειδή Τα σενάρια και τα προγράμματα τείνουν να διακόπτουν τις εισαγωγές όταν συμπληρωθεί ο μέγιστος χρόνος εκτέλεσης του σεναρίου ή να μην ξεκινούν καθόλου λόγω του μεγέθους του ληφθέντος αρχείου.

Νομίζω ότι όλοι όσοι έχουν προσπαθήσει ποτέ να φορτώσουν ένα dump σε μια βάση δεδομένων MySQL μεγάλο μέγεθοςμέσω phpMyAdmin, καταλαβαίνουν για τι πράγμα μιλάω.

Συχνά αυτά τα όρια είναι η αιτία σφαλμάτων κατά την εισαγωγή μιας βάσης δεδομένων MySQL, τα οποία δεν θα δείτε ποτέ όταν χρησιμοποιείτε την κονσόλα.

Φυσικά, δεν είναι σταθερά και μπορούν να αλλάξουν, αλλά αυτός είναι ένας επιπλέον πονοκέφαλος, ο οποίος, παρεμπιπτόντως, μπορεί να μην είναι επιλύσιμος για τους απλούς χρήστες.

Ελπίζω ότι σας παρακίνησα να εισαγάγετε τη βάση δεδομένων MySQL μέσω της κονσόλας (τόσο της δομής όσο και των μεμονωμένων δεδομένων).

Και σε αυτή τη θετική νότα, προχωράμε στην πολυαναμενόμενη πρακτική και εξετάζουμε μεθόδους και εντολές για τη μεταφορά δεδομένων από την κονσόλα στη βάση δεδομένων.

Πώς να επαναφέρετε μια βάση δεδομένων MySQL από μια ένδειξη αποθήκευσης μέσω της κονσόλας;

Έτσι, για να αναπτύξετε μια ένδειξη MySQL από την κονσόλα, υπάρχουν δύο τρόποι:

  1. χρησιμοποιώντας την εντολή in γραμμή εντολών MySQL;
  2. στην ίδια την κονσόλα διακομιστή.

Ας ξεκινήσουμε με τη σειρά.

Έτσι, για να εισαγάγουμε μια ένδειξη απόρριψης βάσης δεδομένων MySQL σε έναν υπάρχοντα χώρο αποθήκευσης μέσω του , πρέπει πρώτα να την εκκινήσουμε και να επιλέξουμε την επιθυμητή βάση δεδομένων στην οποία θα ανεβάσουμε το dump μας.

Η υλοποίηση αυτών των ενεργειών περιγράφεται λεπτομερώς στο άρθρο που αναφέρεται παραπάνω, οπότε αν χρειάζεστε μια περιγραφή τους, πάρτε τις από εκεί, γιατί Δεν θέλω να τα επαναλάβω για τον δεύτερο γύρο.

Αφού κάνετε τα παραπάνω, πληκτρολογήστε την ακόλουθη εντολή στο MySQL Shell:

Πηγή path_and_dump_file_name;

Το μόνο που μας μένει είναι να μελετήσουμε τα μηνύματα στην κονσόλα σχετικά με την πρόοδο των λειτουργιών που περιέχονται στο dump.

Χωρίς να μεταβείτε πρώτα στην επιθυμητή βάση δεδομένων, μετά τη σύνδεση στον διακομιστή MySQL στην κονσόλα, το dump μπορεί να εισαχθεί με την ακόλουθη εντολή:

Mysql -u όνομα χρήστη -p database_name< путь_и_имя_файла_дампа

Αυτό είναι όλο. Το κύριο πράγμα είναι να περιμένετε να ολοκληρωθεί η εισαγωγή εάν το αρχείο είναι πολύ μεγάλο. Η ολοκλήρωση της μεταφόρτωσης του dump μπορεί να κριθεί από το πότε η κονσόλα διακομιστή είναι ξανά διαθέσιμη.

Στην πραγματικότητα, αυτό είναι το μειονέκτημα αυτή τη μέθοδοσε σχέση με την προηγούμενη, γιατί Στην πρώτη είναι δυνατή η παρακολούθηση των λειτουργιών που εκτελούνται στη βάση δεδομένων κατά την εισαγωγή, αλλά στη δεύτερη δεν είναι.

Εάν το αρχείο ένδειξης σφαλμάτων είναι συσκευασμένο σε ένα αρχείο, τότε κατά τη λήψη θα πρέπει να αποσυσκευαστεί ταυτόχρονα.

Στο Linux αυτό μπορεί να γίνει ως εξής:

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

ΣΕ Πρότυπο WindowsΔεν υπάρχει βοηθητικό πρόγραμμα για την αποσυσκευασία του αρχείου στην κονσόλα, επομένως θα χρειαστεί να εγκατασταθεί επιπλέον.

Όπως μπορείτε να δείτε, η εισαγωγή μιας ένδειξης MySQL dump μέσω της κονσόλας είναι μια πολύ απλή λειτουργία, η οποία εκτελείται με μία εντολή. Επομένως, δεν χρειάζεται να είστε προγραμματιστής για να εκτελέσετε αυτήν τη διαδικασία.

Εάν ξαφνικά δεν ξέρετε πώς να εκκινήσετε την κονσόλα διακομιστή, μπορείτε να βρείτε αυτές τις πληροφορίες στο άρθρο σχετικά με τη γραμμή εντολών MySQL, τον σύνδεσμο στον οποίο έχω ήδη δημοσιεύσει νωρίτερα.

Παρεμπιπτόντως, χρησιμοποιώντας τις περιγραφόμενες μεθόδους είναι επίσης δυνατή η εισαγωγή ενός πίνακα MySQL και όχι ολόκληρης της βάσης δεδομένων. Σε αυτήν την περίπτωση, το dump που ανεβάζετε πρέπει να περιέχει τις λειτουργίες δημιουργίας και πλήρωσής του με δεδομένα.

Φόρτωση δεδομένων σε μια βάση δεδομένων MySQL από ένα αρχείο στην κονσόλα

Μιλήσαμε για την επαναφορά μιας βάσης δεδομένων MySQL από μια ένδειξη στην κονσόλα. Τώρα είναι η ώρα να καταλάβετε πώς μπορείτε να εισάγετε παρόμοια δεδομένα από αρχεία, συμπεριλαμβανομένων των xls και csv, σε μια βάση δεδομένων MySQL.

Για αυτήν την εργασία, έχουμε και πάλι τα ίδια δύο εργαλεία όπως στην προηγούμενη περίπτωση: τη γραμμή εντολών MySQL και την κονσόλα διακομιστή.

Ας ξεκινήσουμε πάλι την ανασκόπηση με τη σειρά.

Έτσι, για να εισαγάγουμε ένα αρχείο στη γραμμή εντολών της MySQL, το τρέχουμε ξανά και πηγαίνουμε στη βάση δεδομένων στην οποία θα φορτωθούν τα δεδομένα.

LOAD INFILE DATA INFILE "path_and_name_of_dump_file" ΣΕ ΣΤΗΛΕΣ ΠΙΝΑΚΑΣ `database_table` TERMINATED BY "," ΠΕΡΙΒΑΛΛΟΜΕΝΑ ΑΠΟ "\"" LINES TERMINATED by "\n";

Μην ξεχνάτε ότι εάν ο διακομιστής MySQL ξεκίνησε με την επιλογή --secure-file-priv(κάτι που συμβαίνει συχνά όταν χρησιμοποιούνται διανομές MySQL που περιλαμβάνονται σε συγκροτήματα WAMP/MAMP), τότε το όνομα αρχείου πρέπει να καθοριστεί λαμβάνοντας υπόψη τη μεταβλητή συστήματος safe_file_priv.

Για να εισαγάγουμε μια βάση δεδομένων MySQL στην κονσόλα διακομιστή χωρίς να μεταβούμε στο MySQL Shell, θα χρειαστούμε το βοηθητικό πρόγραμμα mysqlimport, που περιλαμβάνεται στη διανομή MySQL και την ακόλουθη κλήση:

mysqlimport –u user_name –p database_name name_and_path_to_import_file

Αυτό το βοηθητικό πρόγραμμα είναι ανάλογο της εντολής SQL LOAD INFILE DATA, μόνο για τη γραμμή εντολών. Όμως, τίθεται το ερώτημα, γιατί τότε, μεταξύ των παραμέτρων της κλήσης του, δεν είναι ο πίνακας στον οποίο θα φορτωθούν τα δεδομένα από το αρχείο;

Το γεγονός είναι ότι το mysqlimport απλά δεν έχει φυσικά αυτή η παράμετρος. Αντίθετα, το όνομα του πίνακα στον οποίο θα φορτωθούν τα δεδομένα πρέπει να εμφανίζεται στο όνομα του εισαγόμενου αρχείου.

Εκείνοι. εάν θέλετε να εισαγάγετε έναν πίνακα Excel σε έναν πίνακα MySQL χρήστες, τότε θα πρέπει να κληθεί το αρχείο σας users.xls.

Η επέκταση του εισαγόμενου αρχείου, όπως ήδη αναφέρθηκε, μπορεί να είναι οτιδήποτε.

Με το mysqlimport μπορείτε επίσης να φορτώσετε πολλά αρχεία xls ή csv στη MySQL ταυτόχρονα. Για να φτάσουν τα δεδομένα στον προορισμό τους, τα ονόματα των αρχείων και των πινάκων βάσης δεδομένων, όπως στο προηγούμενο παράδειγμα, πρέπει επίσης να ταιριάζουν.

Εάν ξαφνικά οι στήλες στο εισαγόμενο αρχείο δεν έχουν την ίδια σειρά με τις στήλες του πίνακα της βάσης δεδομένων, τότε για να διευκρινίσετε τη σειρά τους πρέπει να χρησιμοποιήσετε την επιλογή —στήλες με την ακόλουθη μορφή:

Mysqlimport –u user_name –p database_name --columns column1, column2, ... name_and_path_to_import_file

Φυσικά, στα παραδείγματά μου δεν το έλαβα υπόψη πλήρης λίσταπαραμέτρους mysqlimport, επειδή μερικά από αυτά είναι πολύ συγκεκριμένα και χρησιμοποιούνται εξαιρετικά σπάνια στην πράξη.

Εάν θέλετε να εξοικειωθείτε μαζί τους, η πλήρης λίστα τους είναι διαθέσιμη εδώ - https://dev.mysql.com/doc/refman/5.7/en/mysqlimport.html

Δυνατότητες φόρτωσης δεδομένων σε μια βάση δεδομένων MySQL από μια χωματερή

Εάν θέλετε η διαδικασία εισαγωγής μιας μεγάλης βάσης δεδομένων MySQL να προχωρήσει πιο γρήγορα, τότε πρέπει να δημιουργήσετε μια ένδειξη αποθήκευσης βάσης δεδομένων χρησιμοποιώντας ειδικές επιλογές της εντολής mysqldump, για την οποία έγραψα στο προηγούμενο άρθρο μου σχετικά με την εξαγωγή μιας βάσης δεδομένων MySQL, ο σύνδεσμος της οποίας ήταν αναρτήθηκε στο κείμενο νωρίτερα.

Δυστυχώς, οι ίδιες οι εντολές εισαγωγής της βάσης δεδομένων MySQL δεν έχουν τέτοιες επιλογές.

Το μόνο πράγμα είναι ότι για να αυξήσετε την ταχύτητα κατά τη φόρτωση μιας μεγάλης ένδειξης δεδομένων βάσης δεδομένων, μπορείτε να χρησιμοποιήσετε την ακόλουθη δυνατότητα.

1. Ανοίξτε το αρχείο ένδειξης σφαλμάτων (κατά προτίμηση στο διαχειριστές αρχείων, γιατί οι κανονικοί συντάκτες μπορούν απλά να κατακλυζονται από μεγάλα αρχεία).

2. Γράψτε τις ακόλουθες γραμμές στην αρχή του αρχείου:

ΣΕΤ ξένων_κλειδιών_ελέγχων = 0; SET UNIQUE_CHECKS = 0; SET AUTOCOMMIT = 0;

Δίνω προσοχή! Μπορεί να είναι ήδη εκεί ή να έχουν σχολιαστεί (πολλά προγράμματα που κάνουν dumps μπορούν να τα προσθέσουν αυτόματα)

3. Στο τέλος του αρχείου γράφουμε τις αντίστροφες ενέργειες:

ΣΕΤ ξένων_κλειδιών_ελέγχων = 1; SET UNIQUE_CHECKS = 1; SET AUTOCOMMIT = 1;

Παρεμπιπτόντως, αυτές οι εντολές θα βοηθήσουν όχι μόνο να επιταχύνουν τη διαδικασία εισαγωγής, αλλά και να την καταστήσουν δυνατή.

Το γεγονός είναι ότι αν έχετε κοιτάξει ποτέ το αρχείο ένδειξης σφαλμάτων για την εισαγωγή μιας βάσης δεδομένων MySQL, μπορεί να έχετε παρατηρήσει ότι η λειτουργία της ρύθμισης της δομής των φορτωμένων πινάκων μοιάζει με αυτό:

ΑΠΟΣΤΟΛΗ ΠΙΝΑΚΑ ΑΝ ΥΠΑΡΧΕΙ «πελάτες». ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ «πελάτες» (...);

Εκείνοι. εκτελείται αναζήτηση στη βάση δεδομένων για έναν πίνακα με το ίδιο όνομα με αυτόν που εισάγεται, και εάν βρεθεί, διαγράφεται και δημιουργείται εκ νέου.

Κι αν ξαφνικά υπάρχον πίνακαθα συνδεθεί με ξένα κλειδιά με άλλα, τότε ολόκληρη η λήψη θα αποτύχει.

Επομένως, η απενεργοποίηση του ελέγχου για την ύπαρξη ξένων κλειδιών και άλλων είναι επίσης μια εξαιρετική εγγύηση για την επιτυχή ολοκλήρωση της διαδικασίας εισαγωγής της βάσης δεδομένων MySQL.

Δυνατότητες εισαγωγής csv στη βάση δεδομένων MySQL και σε άλλα αρχεία

Κατά τη φόρτωση δεδομένων σε μια βάση δεδομένων MySQL από αρχεία κειμένου, μπορεί επίσης να χρειαστεί να απενεργοποιήσετε τα ξένα κλειδιά.

Επιπλέον, σε αντίθεση με την προηγούμενη κατάσταση, σε αυτήν την περίπτωση δεν θα είναι δυνατή η εγγραφή οδηγιών στο αρχείο, επειδή Οι εντολές SQL σε αυτό δεν θα γίνονται δεκτές και δεν θα εκτελούνται.

Σε προηγούμενο άρθρο σχετικά με την εξαγωγή μιας βάσης δεδομένων MySQL, ανέφερα ήδη πώς να το κάνετε αυτό χρησιμοποιώντας την ακόλουθη λειτουργία στη γραμμή εντολών MySQL:

SET FOREIGN_KEY_CHECKS=0;

Ωστόσο, δεν ανέφερα εκεί τη μεταβλητή συστήματος MySQL ΞΕΝΟΙ_ΚΛΕΙΔΙ_ΕΛΕΓΧΟΙέχει δύο έννοιες: καθολική και συνεδριακή (για την τρέχουσα συνεδρία).

Η καθολική τιμή των μεταβλητών MySQL είναι έγκυρη για οποιαδήποτε ενέργεια στον διακομιστή MySQL μέχρι να γίνει επανεκκίνηση. Στη συνέχεια, οι τιμές των μεταβλητών θα επαναφερθούν και θα τους εκχωρηθούν προεπιλεγμένες τιμές.

Η τιμή περιόδου λειτουργίας της μεταβλητής συστήματος MySQL ορίζεται μόνο για τη διάρκεια της περιόδου σύνδεσης του χρήστη με τον διακομιστή MySQL. Μια περίοδος λειτουργίας ή περίοδος λειτουργίας ξεκινά όταν ένας πελάτης συνδέεται με τον διακομιστή, οπότε και του εκχωρείται ένα μοναδικό αναγνωριστικό σύνδεσης, και τελειώνει όταν αποσυνδεθεί από τον διακομιστή, κάτι που μπορεί να συμβεί ανά πάσα στιγμή (για παράδειγμα, λόγω χρονικού ορίου).

Γιατί αποφάσισα να το θυμηθώ;

Επειδή κατά την εκτέλεση εντολών για τη φόρτωση ενός αρχείου σε μια βάση δεδομένων MySQL μέσω της κονσόλας διακομιστή, χωρίς να μπω στο κέλυφος της MySQL, ανακάλυψα ότι η απενεργοποίηση του ελέγχου ξένου κλειδιού χρησιμοποιώντας τη μέθοδο που περιγράφηκε προηγουμένως δεν λειτουργεί.

Η κονσόλα εξακολουθούσε να εμφανίζει ένα μήνυμα σφάλματος που προκαλείται από την παρουσία ξένων κλειδιών στον πίνακα.

Και προέκυψε για το λόγο ότι η παραπάνω εντολή απενεργοποίησε τον έλεγχο ύπαρξης ξένων κλειδιών εντός της συνεδρίας και όχι καθολικά, η οποία, επιπλέον την καθορισμένη μέθοδο, μπορεί επίσης να γίνει ως εξής:

SET SESSION variable_name = variable_value; SET @@session.variable_name = variable_value; SET @@variable_name = variable_value;

Στις παραπάνω εντολές, η μεταβλητή επισημαίνεται ξεκάθαρα ως περίοδος λειτουργίας.

Και, καθώς φόρτωνα ένα αρχείο csv σε έναν πίνακα MySQL μέσω της κονσόλας διακομιστή, χωρίς άμεση σύνδεση με τον διακομιστή MySQL, δεν δημιουργήθηκε μια περίοδος λειτουργίας εντός της οποίας θα λειτουργούσε η τιμή της μεταβλητής συνεδρίας μου.

Κατέληξα να ορίσω το FOREIGN_KEY_CHECKS σε καθολικό και η εισαγωγή ήταν επιτυχής.

Μπορείτε να το κάνετε αυτό με έναν από τους παρακάτω τρόπους:

SET GLOBAL variable_name = variable_value. SET @@global.variable_name = variable_value;

Αφού αλλάξετε τις τιμές, είναι καλή ιδέα να ελέγξετε τις τιμές της μεταβλητής για να επαληθεύσετε ότι οι αλλαγές τέθηκαν σε ισχύ. Για την ταυτόχρονη εμφάνιση συνεδριών και καθολικών τιμών, χρησιμοποιήστε την ακόλουθη εντολή:

SELECT @@GLOBAL.foreign_key_checks, @@SESSION.foreign_key_checks;

Αυτό ολοκληρώνει το σημερινό άρθρο σχετικά με την εισαγωγή μιας βάσης δεδομένων MySQL. Μοιραστείτε τις εντυπώσεις σας και τις δικές σας εξελίξεις στα σχόλια. Νομίζω ότι πολλοί θα ενδιαφέρονται για την εμπειρία σας.

Τα λέμε ξανά! 🙂

P.S.: εάν χρειάζεστε έναν ιστότοπο ή θέλετε να κάνετε αλλαγές σε έναν υπάρχοντα, αλλά δεν υπάρχει χρόνος ή επιθυμία για αυτό, μπορώ να προσφέρω τις υπηρεσίες μου.

Περισσότερα από 5 χρόνια εμπειρία επαγγελματική ανάπτυξητοποθεσίες. Εργασία με PHP, OpenCart,

Κατά τη μετεγκατάσταση ενός ιστότοπου από τοπικός διακομιστήςγια τη φιλοξενία, μία από τις υποχρεωτικές διαδικασίες είναι η εξαγωγή/εισαγωγή της βάσης δεδομένων (βάση δεδομένων). Επομένως, σε αυτό το άρθρο θα προσπαθήσω να περιγράψω όσο το δυνατόν λεπτομερέστερα τη διαδικασία εξαγωγής και εισαγωγής μιας βάσης δεδομένων από έναν τοπικό διακομιστή, δηλαδή από τη διεπαφή ιστού PHPMyAdminέκδοση 3.2.3 για φιλοξενία.

Το πρώτο πράγμα που πρέπει να κάνετε είναι να ξεκινήσετε έναν τοπικό διακομιστή, σε αυτήν την περίπτωση τον Denwer. Μετά την εκκίνηση του Denwer, πρέπει να ανοίξετε το πρόγραμμα περιήγησής σας και να εισαγάγετε στη γραμμή του προγράμματος περιήγησης: "http://localhost/tools/phpmyadmin", μετά το οποίο θα ανοίξει ένα παράθυρο μπροστά σας(Εικ.1)με προηγουμένως δημιουργηθεί βάσεις δεδομένων.

Εικ.1

Στη συνέχεια πρέπει να επιλέξουμε τη βάση δεδομένων που θα εξαγάγουμε, στην περίπτωσή μου είναι μια βάση δεδομένων που ονομάζεται Mybd. Μπορείτε να επιλέξετε μια βάση δεδομένων κάνοντας κλικ πάνω της στην αριστερή πλευρά του παραθύρου του προγράμματος περιήγησης, εκεί που λέει "Παρακαλώ επιλέξτε μια βάση δεδομένων" (Εικ. 2).


Εικ.2

Αφού επιλέξετε την επιθυμητή βάση δεδομένων, θα ανοίξει ένα παράθυρο με τη δομή της βάσης δεδομένων. ΣΕ επάνω μενούυπάρχει ένα σημείο "Εξαγωγή"με τη βοήθεια του οποίου θα εξάγουμε τη βάση δεδομένων σε υπολογιστή και στη συνέχεια θα την εισάγουμε στο hosting. Και έτσι, μεταβείτε στο στοιχείο "Εξαγωγή". (Εικ.3).


Εικ.3

Στο παράθυρο που ανοίγει πρέπει να κάνετε κάποιες μετρήσεις (Εικ.4), δηλαδή: στο μπλοκ "Εξαγωγή" πρέπει να επιλέξετε όλους τους πίνακες βάσης δεδομένων κάνοντας κλικ στο στοιχείο "Επιλογή όλων"και επιλέξτε το πλαίσιο δίπλα στο στοιχείο εξαγωγή και υποδεικνύεται επίσης στη μορφή, αυτό το στοιχείο είναι υπεύθυνο για τον τύπο του αρχείου που θα εξαχθεί. Επίσης, πρέπει να επιλέξετε το πλαίσιο δίπλα "Αποθήκευση ως αρχείο", το οποίο θα διασφαλίσει ότι η βάση δεδομένων αποθηκεύεται σε ένα αρχείο. Δεν χρειάζεται να αλλάξετε άλλες ρυθμίσεις, απλώς πατήστε το κουμπί "Πάω".

Εικ.4

Τώρα, εάν τα κάνατε όλα σωστά, το αρχείο της βάσης δεδομένων θα πρέπει να γίνει λήψη στον υπολογιστή σας. Χρησιμοποιώντας αυτό το αρχείο θα εισάγουμε τη βάση δεδομένων στο hosting.

Επίσης, πρέπει να αλλάξετε την κωδικοποίηση αρχείου σε UTF-8 χωρίς BOM, για να αλλάξετε την κωδικοποίηση που χρησιμοποιώ επεξεργαστής κειμένου Σημειωματάριο ++(Λήψη) . Χρησιμοποιώντας αυτό το πρόγραμμα ανοίγετε το αρχείο της βάσης δεδομένων και στο μενού "Κωδικοποίηση"επιλέγω "Μετατροπή σε UTF-8 χωρίς BOM" (Εικ. 5), στη συνέχεια αποθηκεύστε και κλείστε.


Εικ.5

Όταν μόλις ξεκινάτε να δημιουργείτε έναν ιστότοπο, συνήθως το κάνετε σε έναν τοπικό διακομιστή. Όταν είναι έτοιμο, θα χρειαστεί να το μετακινήσετε απομακρυσμένος διακομιστής. Η αντιγραφή αρχείων δεν είναι δύσκολη, αλλά ορίστε πώς εισαγωγή βάσης δεδομένωνσε έναν απομακρυσμένο διακομιστή; Σχεδόν πώς να εισάγετε μια βάση δεδομένων στο PHPMyAdmin, θα σας εξηγήσω σε αυτό το άρθρο.

Υπάρχουν πολλοί τρόποι εισαγωγή βάσης δεδομένωνΩστόσο, θα σας πω αυτό που πιστεύω ότι είναι το πιο απλό και αυτό που χρησιμοποιώ ο ίδιος.

Βήμα 1

Το πρώτο πράγμα που πρέπει να κάνετε είναι εξαγωγή βάσης δεδομένωναπό την τρέχουσα τοποθεσία σας (συγκεκριμένα έναν τοπικό διακομιστή). Στόχος μας είναι να πάρουμε Ερώτημα SQLτη βάση δεδομένων μας. Για να γίνει αυτό πρέπει να κάνετε τα εξής:

Βήμα 2

Το δεύτερο και τελευταίο βήμα είναι να κάνετε Ερώτημα SQL, που αντιγράψατε, στο PHPMyAdmin, που βρίσκεται στον διακομιστή όπου χρειάζεστε εισαγωγή βάσης δεδομένων. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:

Ως αποτέλεσμα, όλοι οι πίνακες σας με όλες τις εγγραφές θα δημιουργηθούν στον νέο διακομιστή.

Όπως μπορείτε να δείτε, η διαδικασία εξαγωγή και εισαγωγή βάσης δεδομένων στο PHPMyAdminαπλοποιημένο στο ελάχιστο, επομένως δεν θα υπάρχουν προβλήματα με αυτό.

Τέλος, θα ήθελα να σας δώσω μια ακόμη συμβουλή. Το γεγονός είναι ότι πολύ συχνά υπάρχει μια κατάσταση όταν χρειάζεστε μην εισάγετε ολόκληρη τη βάση δεδομένων, αλλά, για παράδειγμα, μόνο ένα τραπέζι. Τότε η αρχή είναι απολύτως η ίδια, μόνο κατά την εξαγωγή πρέπει να επιλέξετε όχι μόνο τη βάση δεδομένων, αλλά και τον πίνακα για εξαγωγή. Και μετά πάλι στο επάνω μενού κάντε κλικ στο " ΕξαγωγήΤότε όλα είναι ίδια εισαγωγή βάσης δεδομένων.

Αυτή η διαδικασία περιλαμβάνει τη μεταφορά δεδομένων από μια βάση δεδομένων (Α) σε μια άλλη (Β). Κατά κανόνα, η βάση δεδομένων Β βρίσκεται στη φιλοξενία (ή στο Ντένβερ) και η βάση δεδομένων Α βρίσκεται στον υπολογιστή του χρήστη και είναι ένα αρχείο με την επέκταση sql. Η βάση δεδομένων Α έχει άλλο όνομα - Dump.

Πώς να εισαγάγετε μια βάση δεδομένων;

Εισαγωγή βάσης δεδομένων MySQL με χρήση SSH

Αυτή η μέθοδος χρησιμοποιείται αρκετά σπάνια, αλλά θα την περιγράψουμε. Αρχικά, συμπληρώστε τη βάση δεδομένων από την οποία θα εισαχθεί στον διακομιστή του παρόχου φιλοξενίας, όπου αποθηκεύονται τα αρχεία του ιστότοπού σας. Στη συνέχεια, για να εισαγάγετε τη βάση δεδομένων, χρησιμοποιήστε την εντολή:

mysql -uUSERNAME -pUSERPASSWORD DBNAME< DUMPFILENAME.sql

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

Αντί για λέξεις γραμμένες με κεφαλαία γράμματα αντικαθιστούμε:
USERNAME - όνομα χρήστη βάσης δεδομένων, για παράδειγμα uhosting_databaseuser.

USERPASSWORD - κωδικός πρόσβασης χρήστη βάσης δεδομένων, για παράδειγμα Rjkweuik12;

DBNAME - όνομα της βάσης δεδομένων στην οποία θα γίνει η εισαγωγή, για παράδειγμα uhosting_databasename

DUMPFILENAME - όνομα του αρχείου ένδειξης από το οποίο θα εισαχθούν δεδομένα. Εδώ πρέπει επίσης να καθορίσουμε τη διαδρομή προς τη βάση δεδομένων που ανεβάσαμε στον διακομιστή του παρόχου φιλοξενίας.