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

16 Μαΐου

Πρόσφατα προέκυψε το ερώτημα της μεταφοράς μιας ιστοσελίδας από το ένα hosting στο άλλο. Με ιστότοπους που χρησιμοποιούν μόνο html και css χωρίς βάσεις δεδομένων, δεν θα πρέπει να υπάρχουν δυσκολίες. Ο χορός με ένα ντέφι ξεκινά όταν είστε περήφανος ιδιοκτήτης μιας ιστοσελίδας με βάση δεδομένων. Σήμερα, υπάρχει μια συντριπτική πλειοψηφία τέτοιων τοποθεσιών στο Διαδίκτυο.

Μπορούμε να μεταφέρουμε τα ίδια τα αρχεία του ιστότοπου χρησιμοποιώντας τακτική αντιγραφή από τη φιλοξενία στη φιλοξενία

Για να μεταφέρουμε μια βάση δεδομένων από έναν διακομιστή σε έναν άλλο χρειαζόμαστε:
1. Πραγματοποιήστε λήψη του αρχείου απόρριψης της βάσης δεδομένων στον υπολογιστή σας (Λειτουργία εξαγωγής).

2. Μεταφορτώστε τη βάση δεδομένων στον διακομιστή φιλοξενίας (Λειτουργία εισαγωγής).

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

1. Εξάγετε τη βάση δεδομένων από το διακομιστή στον υπολογιστή σας.

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

Πρέπει να πάτε στο " Εξαγωγή"και επιλέξτε ως" Μέθοδος εξαγωγής» — Κανονικό — εμφανίζει όλες τις πιθανές ρυθμίσεις.

Μετά από αυτό, πρέπει να δώσετε προσοχή στα πεδία:
1. Στην καρτέλα Πίνακες, πρέπει να επιλεγούν όλοι οι πίνακες που πρέπει να εισαχθούν. Ενδέχεται να υπάρξει μια κατάσταση όπου ορισμένοι πίνακες δεν θα χρειαστούν κατά την εισαγωγή για τη μεταφορά βάσεων δεδομένων. Σε αυτήν την περίπτωση, μπορείτε να αποεπιλέξετε τους πίνακες που δεν χρειάζονται επιλέγοντας τα απαραίτητα ονόματα πινάκων κρατώντας πατημένο το πλήκτρο Ctrl στο πληκτρολόγιο. (ΣΠΟΥΔΑΙΟΣ! Εάν δεν είστε έμπειρος χρήστης βάσης δεδομένων, είναι προτιμότερο να επιλέξετε όλους τους πίνακες. )
2. Πρέπει να επιλέξετε την επιλογή "Αποθήκευση εξόδου σε αρχείο".
3. Θυμηθείτε την κωδικοποίηση που έχει οριστεί στο πεδίο - Κωδικοποίηση αρχείου.
4. Δεν χρειάζεται να αγγίξετε τα υπόλοιπα σημεία εάν δεν ξέρετε γιατί χρειάζονται.
5. Κάντε κλικ στο OK και, στη συνέχεια, αποθηκεύστε το αρχείο στον υπολογιστή σας.

2. Εισαγάγετε τη βάση δεδομένων από τον υπολογιστή σας στον διακομιστή.

1. Ελέγχουμε την επέκταση της αποθηκευμένης βάσης δεδομένων melon στον υπολογιστή μας. Θα πρέπει να είναι '.sql'. Εάν, κατά την αποθήκευση της βάσης δεδομένων, καθορίστηκε η επιλογή - αρχειοθέτηση (zip, gzip, bzip) - πρέπει πρώτα να εξαγάγετε τη βάση δεδομένων από το αρχείο.
2. Η ένδειξη της βάσης δεδομένων μας δεν πρέπει να περιέχει ερωτήματα όπως « CREATE DATABASE, /*!40101 SET @OLD» . Μπορείτε να επαληθεύσετε την απουσία ή την παρουσία ενός τέτοιου αιτήματος ανοίγοντας την ένδειξη της βάσης δεδομένων με το Σημειωματάριο ή άλλο πρόγραμμα επεξεργασίας κειμένου. Εάν υπάρχει ένα τέτοιο αίτημα, θα πρέπει να διαγράψετε αυτήν τη γραμμή και να αποθηκεύσετε ξανά το αρχείο. Κατά κανόνα, βρίσκεται στις πρώτες 15 γραμμές της ένδειξης δεδομένων βάσης δεδομένων.
3. Πρέπει να βεβαιωθείτε ότι δεν δημιουργούνται πίνακες στη μελλοντική βάση δεδομένων. Για να το κάνετε αυτό, μεταβείτε και επιλέξτε τη βάση δεδομένων σας στο μενού στα αριστερά στη λίστα των βάσεων δεδομένων. Στην αριστερή πλευρά του μενού μπορείτε να δείτε το μήνυμα "Δεν βρέθηκαν πίνακες στη βάση δεδομένων". Εάν υπάρχουν πίνακες, πρέπει να τους διαγράψετε.

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

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

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

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

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

mysqldump -u Η σύνδεσή σας -pΟ κωδικός πρόσβασης _mysql YourDatabase > baza.sql

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

Στη συνέχεια, πρέπει να ανεβάσετε το αρχείο που προκύπτει με τη βάση δεδομένων σας στον διακομιστή παραλήπτη. Αυτό μπορεί να γίνει στην ίδια περίοδο λειτουργίας telnet/SSH με την εντολή ftp ή χρησιμοποιώντας οποιονδήποτε πελάτη προτιμάτε (πρώτα κατεβάστε το αρχείο baza.sql στον υπολογιστή σας και στη συνέχεια ανεβάστε το στον διακομιστή παραλήπτη). Αφού το αρχείο της βάσης δεδομένων σας βρίσκεται στον διακομιστή παραλήπτη, συνδεθείτε σε αυτόν τον διακομιστή μέσω telnet/SSH. Μπορείτε να ανεβάσετε τη βάση δεδομένων σας στον διακομιστή παραλήπτη εκτελώντας την ακόλουθη εντολή:

mysql -uΗ σύνδεσή σας -pΟ κωδικός σας _mysql Η βάση δεδομένων σας< baza.sql

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

Η τεχνική που περιγράφεται παραπάνω μπορεί να χρησιμοποιηθεί σε περιπτώσεις όπου έχετε πρόσβαση και στους δύο διακομιστές μέσω telnet ή SSH και σε περιπτώσεις όπου η βάση δεδομένων σας είναι αρκετά μεγάλη (αρκετές δεκάδες χιλιάδες εγγραφές). Σε περιπτώσεις όπου δεν έχετε πρόσβαση σε διακομιστές (ή σε έναν από αυτούς) μέσω telnet ή SSH ή δεν γνωρίζετε πώς να εργαστείτε σε περιβάλλον εντολών Unix και να χρησιμοποιήσετε έναν πελάτη telnet ή SSH, μπορείτε να χρησιμοποιήσετε την ακόλουθη τεχνική:
Στον διακομιστή προέλευσης, μεταβείτε στο σενάριο για εργασία με βάσεις δεδομένων MySQL (Κατά κανόνα, αυτό είναι το PHPMyAdmin). Επιλέξτε τη βάση δεδομένων που προορίζεται για μεταφορά και στις ιδιότητές της υποδεικνύετε "Προβολή απόθεσης βάσης δεδομένων (σχήμα)" (Θα πρέπει να σημειωθεί ότι τα συγκεκριμένα ονόματα των στοιχείων μενού ενδέχεται να διαφέρουν από αυτά που αναφέρονται εδώ λόγω του γεγονότος ότι μπορούν να χρησιμοποιηθούν διαφορετικές εκδόσεις του προγράμματος σε διαφορετικούς διακομιστές, και ως εκ τούτου, συνιστάται να διαβάσετε τη σχετική τεκμηρίωση). Επιλέξτε τα πλαίσια για τα στοιχεία που χρειάζεστε: "Μόνο δομή", "Δομή και δεδομένα", "Μόνο δεδομένα" και επιλέξτε το πλαίσιο "Αποστολή". Όταν κάνετε κλικ στο κουμπί "Μετάβαση" μετά από κάποιο χρονικό διάστημα, θα σας ζητηθεί να ανεβάσετε ένα αρχείο - αυτό θα είναι το περιεχόμενο της βάσης δεδομένων σας. Όταν γίνει λήψη του αρχείου στον υπολογιστή σας.

Ποιες μέθοδοι υπάρχουν;

1 - χρησιμοποιώντας τη διεπαφή phpMyAdmin.

2 - χρησιμοποιώντας τον πίνακα ελέγχου του παρόχου φιλοξενίας.

3 - χρησιμοποιώντας ένα πρόγραμμα τρίτου κατασκευαστή.

Ποιος τρόπος είναι καλύτερος;

Προτείνουμε το πρώτο γιατί... Το σχήμα του είναι απλό και χρησιμοποιείται από τους περισσότερους webmasters. Δεν συνιστούμε να χρησιμοποιήσετε την τρίτη μέθοδο! Ποτέ μην εμπιστεύεστε το περιεχόμενο του ιστότοπού σας σε προγράμματα τρίτων, ειδικά σε προγράμματα από άγνωστους προγραμματιστές. Μπορείτε επίσης να χρησιμοποιήσετε τη δεύτερη μέθοδο, αλλά ο αλγόριθμός της είναι πολύ διαφορετικός και εξαρτάται από τον πίνακα ελέγχου του hoster. Ως εκ τούτου, θα εξετάσουμε λεπτομερώς την πρώτη επιλογή και θα σας πούμε πώς να μεταφέρετε κανονικά βάσεις δεδομένων MySQL χωρίς απώλεια ή καταστροφή δεδομένων.

Δημιουργία βάσης δεδομένων σε νέο hosting

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

1 - Αναζητούμε την ενότητα "MySQL", "Βάσεις δεδομένων" ή κάτι παρόμοιο.

2 - Κάντε κλικ στο «Δημιουργία» σε αυτό.

3 - Εισαγάγετε το όνομα της βάσης δεδομένων, επισυνάψτε έναν χρήστη σε αυτήν (συνήθως ο χρήστης της βάσης δεδομένων έχει ήδη δημιουργηθεί, εάν όχι, τότε δημιουργήστε τον και ορίστε τα υψηλότερα δικαιώματα) και εισαγάγετε τον κωδικό πρόσβασης για τη βάση δεδομένων.

4 - Η βάση δεδομένων έχει δημιουργηθεί, αλλά εξακολουθεί να είναι κενή.

Εξαγωγή της βάσης δεδομένων από την παλιά φιλοξενία

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

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

4 - Μπορεί να σας ζητηθεί να επιλέξετε τη μέθοδο εξαγωγής "Κανονική" (πολλές ρυθμίσεις) ή "Γρήγορη" (λίγες ρυθμίσεις). Δεν έχει σημασία ποια θα επιλέξετε, το κύριο πράγμα είναι να αλλάξετε μόνο αυτές τις ρυθμίσεις που περιγράφουμε παρακάτω.

5 - Πρέπει να επιλέξετε όλους τους πίνακες κάνοντας κλικ στο κουμπί "Επιλογή όλων".

7 - Για κάθε περίπτωση, θυμηθείτε την κωδικοποίηση, αλλά μην την αγγίζετε.

8 - Κάντε κλικ στο "Ok" και αποθηκεύστε το αρχείο από τη βάση δεδομένων στον υπολογιστή σας. Συνήθως το αποθηκευμένο αρχείο έχει την επέκταση .sql.

Εισαγωγή βάσης δεδομένων στον διακομιστή ενός νέου hoster

1 - Με τον ίδιο τρόπο αναζητούμε το phpMyAdmin στη νέα φιλοξενία.

2 - Σε αυτό, επιλέξτε την επιθυμητή βάση δεδομένων (τη δημιουργήσαμε στην αρχή του άρθρου και παρέμεινε κενή).

3 - Κάντε κλικ στην καρτέλα "Εισαγωγή".

4 - Κάντε κλικ στο "Browse" και επιλέξτε τη βάση δεδομένων που είναι αποθηκευμένη στον υπολογιστή σας.

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

6 - Μην αλλάξετε τίποτα άλλο, κάντε κλικ στο "Ok" και η βάση δεδομένων σας θα εισαχθεί στη νέα φιλοξενία.

Ποια είναι τα προβλήματα;

1 - Κατά την εισαγωγή μιας βάσης δεδομένων, δεν πρέπει να περιέχει ερωτήματα όπως " CREATE DATABASE, /*!40101 SET @OLD" Για να ελέγξετε την παρουσία τους, ανοίξτε το αρχείο βάσης δεδομένων στον υπολογιστή σας με οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου (το Notepad++ είναι το καλύτερο) και χρησιμοποιήστε Ctrl+A για να αναζητήσετε αυτά τα ερωτήματα. Εάν τα βρείτε, απλώς διαγράψτε τα και δοκιμάστε να εισαγάγετε ξανά τη βάση δεδομένων.

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

Ο αλγόριθμος είναι ο εξής:

  1. Επιλέξτε την επιθυμητή βάση δεδομένων.
  2. Κάντε κλικ στο στοιχείο μενού "Εξαγωγή" στο επάνω μενού.
  3. Προσδιορίστε τη μέθοδο εξαγωγής. Λαμβάνοντας υπόψη ότι όλες οι προεπιλεγμένες ρυθμίσεις έχουν αποθηκευτεί, μπορείτε να χρησιμοποιήσετε την επιλογή "Γρήγορη". Επιλέγω "Κανονικό" μόνο εάν χρειάζεται να συμπιέσω το αρχείο.
  4. Ελέγξτε ότι όλοι οι πίνακες βάσης δεδομένων WordPress είναι επιλεγμένοι για μεταφορά.
  5. Εάν έχει καθοριστεί η επιλογή "Κανονική", τότε μπορείτε να προσδιορίσετε τη συμπίεση κατά την εξαγωγή.
  6. Στο κάτω μέρος της σελίδας, κάντε κλικ στο "Ok".

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

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

  1. Μεταβείτε στο PhpMyAdmin και επιλέξτε μια νέα βάση δεδομένων.
  2. Στο επάνω μενού, κάντε κλικ στο στοιχείο "Εισαγωγή".
  3. Αφού κάνετε κλικ στο κουμπί "Επιλογή αρχείου", επιλέξτε το αρχείο SQL για εισαγωγή στον υπολογιστή σας.
  4. Κάντε κλικ στο "Ok" στο κάτω μέρος της σελίδας.

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

Προσθήκες μετανάστευσης βάσης δεδομένων WordPress

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

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

s:11:"hello world" θα γίνει s:9:"new world"

s:11:"hello world" θα γίνει s:9:"new world"

Ενδέχεται να υπάρχουν σφάλματα κατά την εκτέλεση της SQL και την επεξεργασία απευθείας μέσω του PhpMyAdmin.

Αρχικά, επέτρεπε μόνο την πραγματοποίηση αλλαγών στη βάση δεδομένων, αλλά στις πιο πρόσφατες εκδόσεις, οι προγραμματιστές έχουν επεκτείνει σημαντικά τις λειτουργίες της. Τώρα μπορείτε επίσης να κάνετε λήψη μιας ένδειξης και να επαναφέρετε τη βάση δεδομένων, να αλλάξετε τον τομέα, το πρόθεμα. Η νέα διεπαφή έγινε εντελώς εξαιρετική. Σε αυτό το άρθρο θα σας πω για τη μονάδα με λίγο περισσότερες λεπτομέρειες, αν και όλα εδώ είναι εξαιρετικά απλά. Λήψεις - 100k+, βαθμολογία - 4,4.

Αυτό το εργαλείο μπορεί να χρησιμοποιηθεί όχι μόνο κατά τη μετεγκατάσταση μιας βάσης δεδομένων WordPress, αλλά και ολόκληρου του ιστότοπου. σας επιτρέπει να μεταφέρετε αρχεία πολυμέσων, πρόσθετα, θέματα. Μπορείτε επίσης να ξεκινήσετε τη διαδικασία αναζήτησης και επεξεργασίας δεδομένων στη βάση δεδομένων. Χαρακτηριστικό χαρακτηριστικό είναι η γρήγορη λειτουργία (για να μην επιβαρύνεται ο πάροχος φιλοξενίας), καθώς και η απουσία ανάγκης εγκατάστασης πρόσθετων επεκτάσεων PHP. Η λύση λειτουργεί ακόμη και με PHP v5.2, ενώ η προηγούμενη απαιτεί τουλάχιστον PHP v5.4. Περισσότερες από 300 χιλιάδες λήψεις, βαθμολογία - 4,8.

Εκτελεί τις βασικές εργασίες μεταφοράς μιας βάσης δεδομένων στο WordPress: εξαγωγή μιας ένδειξης ένδειξης, αναζήτηση και αντικατάσταση πληροφοριών, αποθήκευση αρχείων SQL στον υπολογιστή. Πάνω από 200 χιλιάδες λήψεις, βαθμολογία - 4,7. Η δωρεάν έκδοση είναι βασικά αρκετή, αν και φυσικά μπορείτε να περιμένετε πιο κρύες λειτουργίες στο PRO. Θα πρέπει να εισαγάγετε τη βάση δεδομένων μέσω του PhpMyAdmin όπως περιέγραψα στην πρώτη ενότητα.

Χρήση της προσθήκης Αναζήτηση και αντικατάσταση

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

Ετσι. μετά την Αναζήτηση και αντικατάσταση και την ενεργοποίηση, όλες οι λειτουργίες του βρίσκονται στο ομώνυμο στοιχείο μενού στην ενότητα "Εργαλεία". Υπάρχουν 4 κύριες κατευθύνσεις:

  • Backup Database - δημιουργία αντιγράφου ασφαλείας.
  • Αναζήτηση & Αντικατάσταση - αναζήτηση και αντικατάσταση πληροφοριών.
  • Αντικατάσταση διεύθυνσης URL τομέα - αλλάξτε τον τομέα.
  • Εισαγωγή - εισαγωγή SQL.

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

Μεταβείτε στην ενότητα Αντικατάσταση διεύθυνσης URL τομέα. Μάλιστα, παρέχει τη δυνατότητα αντικατάστασης του παλιού domain με νέο.

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

Η καρτέλα Αναζήτηση & Αντικατάσταση σάς βοηθά να αντικαταστήσετε πληροφορίες στη βάση δεδομένων.

  • Πρώτα απ 'όλα, προσδιορίζετε τις παλιές και τις νέες τιμές και, στη συνέχεια, επισημαίνετε τους πίνακες στους οποίους πρέπει να πραγματοποιηθεί η αναζήτηση και η αντικατάσταση.
  • Από προεπιλογή, η επιλογή "Dry Run" είναι ενεργοποιημένη - αυτό σημαίνει ότι οι ενέργειες θα εκτελεστούν σε "λειτουργία δοκιμής".
  • Εάν καταργήσετε την επιλογή του πλαισίου, θα εμφανιστούν 2 επιλογές για να διαλέξετε - εισαγωγή ενός ερωτήματος SQL για την πραγματοποίηση αλλαγών στη βάση δεδομένων ή απευθείας εκτέλεση αυτής της ενέργειας.

Δηλαδή, στην ουσία, μπορείτε να κάνετε: 1) μια δοκιμαστική εκτέλεση της εργασίας, 2) μια πραγματική αντικατάσταση δεδομένων, 3) να λάβετε ένα ερώτημα SQL και στη συνέχεια να το εφαρμόσετε μέσω του PhpMyAdmin ή της 4ης καρτέλας της ενότητας. Μεγάλη ευελιξία!

Σύνολο. Ελπίζω ότι οι πληροφορίες σχετικά με τη μεταφορά μιας βάσης δεδομένων στο WordPress είναι αρκετές για να πραγματοποιήσετε μόνοι σας αυτήν τη διαδικασία. Κατ 'αρχήν, δεν υπάρχει τίποτα περίπλοκο, αλλά όταν εργάζεστε με μια βάση δεδομένων πρέπει πάντα να είστε εξαιρετικά προσεκτικοί - τουλάχιστον, δημιουργήστε αντίγραφα ασφαλείας πριν ξεκινήσετε την εργασία. Και τα τρία πρόσθετα κάνουν εξαιρετική δουλειά, αλλά προσωπικά μου αρέσει περισσότερο το Search and Replace - απλό, ευέλικτο, χωρίς περιττές λεπτομέρειες.

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

Έχετε μια βάση δεδομένων MS SQL Server που πρέπει να μεταφερθεί σε άλλο φυσικό υπολογιστή. Έχετε ήδη δημιουργήσει ένα αντίγραφο ασφαλείας και ξεκινάτε με χαρά την επαναφορά. Στη συνέχεια, όμως, αποδεικνύεται ότι μια παλαιότερη έκδοση του MS SQL Server είναι εγκατεστημένη στον υπολογιστή όπου πρέπει να μεταφερθεί η βάση δεδομένων. Το Stack Overflow σας διαβεβαιώνει ότι όλα είναι άσχημα. Είναι όμως όντως έτσι;

Φυσικά, η μεταφορά μιας βάσης δεδομένων από μια νεότερη έκδοση σε μια παλαιότερη δεν είναι ένα κλασικό και όχι το πιο σωστό σενάριο εργασίας. Συχνά όμως οι βάσεις δεδομένων δημιουργούνται με τέτοιο τρόπο ώστε να υποστηρίζουν όλες τις νεότερες εκδόσεις της SQL, ξεκινώντας με κάποιες, για παράδειγμα, το 2008 R2, επειδή Η άμεση συμβατότητα του MS SQL είναι κάτι παραπάνω από εξαιρετική. Και, για παράδειγμα, ο πελάτης σας έχει ήδη εγκαταστήσει το MS SQL 2016 και έχετε το MS SQL 2014 στον δοκιμαστικό διακομιστή σας για ανάπτυξη Και θέλετε να αναπτύξετε τη βάση δεδομένων του πελάτη για να καταλάβετε πού συγχέεται με τα δεδομένα.

Η Microsoft αρνήθηκε το πρόβλημα - λένε ότι δεν έχουν συμβατότητα προς τα πίσω, και αυτό είναι. Ένα αντίγραφο ασφαλείας που δημιουργήθηκε σε νεότερο διακομιστή δεν μπορεί να αποκατασταθεί σε παλαιότερο διακομιστή. Ναι, έχουν εργαλεία όπως DTS, αντιγραφή βάσεων δεδομένων, εξαγωγή-εισαγωγή κ.λπ. Αλλά είναι τόσο άβολα και δυσκίνητα που δεν είναι ιδιαίτερα βολικό να γίνει μια κανονική μεταφορά μιας μεγάλης βάσης δεδομένων με πολλούς πίνακες που τους χρησιμοποιούν. Σε κάθε περίπτωση, προσωπικά δεν μου βγήκε.

Ναι, μπορείτε να δημιουργήσετε δέσμες ενεργειών SQL για ολόκληρη τη βάση δεδομένων, συμπεριλαμβανομένων των δεδομένων. Αλλά φανταστείτε, έχετε μια δέσμη πεδίων blob με μεγάλα δεδομένα στη βάση δεδομένων σας και γενικά το μέγεθος ολόκληρης της βάσης δεδομένων είναι 500+ GB. Μπορείτε να φανταστείτε πόσο χρόνο θα πάρει ένα τέτοιο σενάριο, πόσο χρόνο θα χρειαστεί για να δημιουργηθεί και να εκτελεστεί.

Ο νούμερο ένα περιορισμός είναι ότι χρειάζεστε πρόσβαση μέσω του MS SQL Management Studio και στους δύο διακομιστές - τον παλιό και τον νέο. Εάν αυτό δεν είναι δυνατό, τότε θα πρέπει να είναι δυνατό στο μηχάνημα από το οποίο θέλετε να μεταφέρετε τη βάση δεδομένων να εγκαταστήσετε την έκδοση της SQL στην οποία θέλετε να μεταφέρετε τη βάση δεδομένων, προκειμένου να μεταφέρετε τη βάση δεδομένων πρώτα σε αυτήν την έκδοση τοπικά, και Στη συνέχεια, σύρετέ το μέσω ενός αντιγράφου ασφαλείας ή απευθείας μέσω των αρχείων βάσης δεδομένων *df (μέσω Detach/Attach) σε ένα νέο μηχάνημα (η έκδοση του SQL Server θα ταιριάζει ήδη σε αυτήν την περίπτωση).

Ένας άλλος περιορισμός είναι ότι θα χρειαστείτε ένα σενάριο για το σχήμα της βάσης δεδομένων (όλα τα αντικείμενα, συμπεριλαμβανομένων των πινάκων, των ευρετηρίων, των περιορισμών, των αποθηκευμένων διαδικασιών, των κανόνων, κ.λπ.) χωρίς δεδομένα και οι οδηγίες για τη δημιουργία Περιορισμών Ξένων Κλειδιών πρέπει να βρίσκονται σε αυτό το σενάριο στο το τέλος, ξεχωριστά από το σενάριο για τη δημιουργία των ίδιων των πινάκων.

Θα περιγράψω εν συντομία τον ίδιο τον αλγόριθμο μεταφοράς δεδομένων. Όλες οι ενέργειες εκτελούνται σε μια περίοδο λειτουργίας Management Studio που είναι συνδεδεμένη στον διακομιστή, επί του οποίουπρέπει να μετακινήσετε τη βάση δεδομένων.

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

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

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

EXEC sp_addlinkedserver @server=N"LinkedServerAlias", @srvproduct=N", @provider=N"SQLNCLI", @datasrc=N"LinkedServerHost\LinkedServerName"; EXEC sp_addlinkedsrvlogin "LinkedServerUser", "false", null, "RealUser", "RealUserPassword";
4) Επειδή οι δομές της βάσης δεδομένων είναι οι ίδιες, θα χρησιμοποιήσουμε την ενσωματωμένη αποθηκευμένη διαδικασία sp_msforeachtable, η οποία σας επιτρέπει να εκτελέσετε ένα ερώτημα σε κάθε πίνακα βάσης δεδομένων για να δημιουργήσετε ένα σενάριο για τη μεταφορά δεδομένων από την παλιά βάση δεδομένων στη νέα μέσω ενός ερωτήματος όπως

ΕΙΣΑΓΩΓΗ ΣΤΟ ? ΕΠΙΛΟΓΗ * ΑΠΟ ;
Το sp_msforeachtable αντικαθιστά το ερωτηματικό με το όνομα κάθε πίνακα και εκτελεί το ερώτημα πολλές φορές (μία φορά ανά πίνακα).

Εδώ συνάντησα τον μεγαλύτερο αριθμό ρακών.

Α) Το πρώτο πρόβλημα είναι ότι για πίνακες με πεδία IDENTITY πρέπει να καλέσετε:

SET IDENTITY_INSERT ON. --INSERT INTO ... (η ίδια η εισαγωγή). SET IDENTITY_INSERT OFF.
β) Το δεύτερο πρόβλημα είναι ότι αυτή η κλήση δεν μπορεί να πραγματοποιηθεί σε πίνακες που δεν έχουν πεδία IDENTITY, επομένως είναι απαραίτητο να προσδιοριστεί δυναμικά εάν ο πίνακας έχει στήλη IDENITY ή όχι.

Αυτό μπορεί να γίνει με αυτό το αίτημα:

SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE (TABLE_NAME="SomeTable") ΚΑΙ (COLUMNPROPERTY(object_id("dbo.SomeTable"), COLUMN_NAME, "IsIdentity") = 1)
γ) Το πρόβλημα νούμερο τρία είναι ότι, όπως αποδείχθηκε, στη λειτουργία IDENITY_INSERT ON δεν μπορείτε να κάνετε

INSERT INTO ... ΕΠΙΛΟΓΗ * ΑΠΟ ...
, αλλά πρέπει να αναφέρετε συγκεκριμένα πεδία.

Μπορείτε να παραθέσετε πεδία πίνακα σε μια σειρά χρησιμοποιώντας το ακόλουθο ερώτημα:

SELECT SUBSTRING((SELECT ", " + QUOTENAME(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = "SomeTable" ORDER BY ORDINAL_POSITION FOR XML path("")), 3, 200000);
4) Δημιουργήστε ένα σενάριο εισαγωγής για όλους τους πίνακες:

Διαδικασία δημιουργίας σεναρίων

EXEC sp_msforeachtable N" DECLARE @command varchar(MAX); DECLARE @name varchar(200); SET @name=""?""; SET @name = SUBSTRING(@name, 8, LEN(@name)-8); SET @command = """" SELECT @command= SUBSTRING((SELECT "", "" + QUOTENAME(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = """" + @όνομα + """" ΠΑΡΑΓΓΕΛΙΑ ΚΑΤΑ ΑΡΧΙΚΗ_ΘΕΣΗ Διαδρομή XML(""")), 3, 200000 SET @command = ""INSERT INTO ""+ @name +"" (""+ @command + "") SELECT "" + @command + ""); FROM "" + ""LinkedServerAlias.SourceDatabase." + """" SET @command= ""ΑΝ ΥΠΑΡΧΕΙ (επιλέξτε * από INFORMATION_SCHEMA.COLUMNS όπου (TABLE_NAME=""""" + @Name + "" "; """) ΚΑΙ (COLUMNPROPERTY(object_id(""""dbo.""+@Name+"""""), COLUMN_NAME, """"IsIdentity"""") = 1)) SET IDENTITY_INSERT "" + @ name + "" ON; "" +@command;" """") ΚΑΙ (COLUMNPROPERTY(object_id(""""dbo.""+@Name+"""""), COLUMN_NAME, """"IsIdentity"""") = 1)) SET IDENTITY_INSERT "" + @name + "" OFF;""; PRINT (@command); --EXEC(@command); // Εάν καταργήσετε το σχολιασμό, το σενάριο θα εκτελεστεί αμέσως και όχι απλώς θα εμφανιστεί στην οθόνη "


5) Εκτελέστε το σενάριο μεταφοράς δεδομένων που δημιουργήθηκε

6) Εκτελέστε το σενάριο για να δημιουργήσετε όλους τους περιορισμούς ξένων κλειδιών (τώρα είναι δυνατό).

7) Έγινε! Μεταφέρατε τη βάση δεδομένων από τον νέο διακομιστή SQL στον παλιό, παρόλο που αυτό θεωρήθηκε αδύνατο. Επιπλέον, η μεταφορά πραγματοποιείται μόνο μιάμιση φορά πιο αργά από την ταχύτητα μεταφοράς δεδομένων μέσω του δικτύου, δηλ. αρκετά γρήγορα.

8) Καθαρισμός του εαυτού μας (απενεργοποίηση Συνδεδεμένου διακομιστή):

EXEC sp_droplinkedsrvlogin "LinkedServerUser", null; sp_dropserver "LinkedServerAlias";
Περιορισμοί της μεθόδου.

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

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



Έχετε ερωτήσεις;

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: