it-swarm.com.de

Beim Importieren der Datenbank wird ein Fehler angezeigt

Ich habe die Datenbank meiner Website auf einen anderen Server importiert, aber es wird dieser Fehler angezeigt, von dem ich keine Ahnung habe:

Ich habe mehrfach versucht, die Datenbank zu importieren, bin jedoch gescheitert. Ich habe auch das Feld "Drop-Tabelle hinzufügen" angekreuzt, das beim Exportieren der Datenbankdatei angezeigt wird, aber es hat nichts getan.

4
Rahul

Dieses Problem ist darauf zurückzuführen, dass Ihr Server den Sortierungstyp utf8mb4_unicode_520_ci nicht unterstützt.

Um dies zu beheben, sollten Sie die Sortierung für alle Tabellen mit utf8mb4_unicode_520_ci in utf8_general_ci konvertieren.

Wenn Sie über phpmyadmin exportieren, können Sie:

  1. Klicken Sie auf die Registerkarte "Exportieren" für die Datenbank

  2. Klicken Sie auf das Optionsfeld "Benutzerdefiniert"

  3. Wechseln Sie zum Abschnitt "Formatspezifische Optionen" und ändern Sie das Dropdown-Menü für "Datenbanksystem oder älterer MySQL-Server", um die Ausgabekompatibilität zu maximieren: "von NONE zu MYSQL40.

  4. Scrollen Sie nach unten und klicken Sie auf "GO".

OR führen Sie die folgende Abfrage für jede betroffene Tabelle aus:

ALTER TABLE myTable CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci

UPDATE: Sie sollten auch in Ihrer SQL-exportierten Datei TYPE=MyISAM durch ENGINE=MyISAM ersetzen

6
Tunji

Für einige sieht die Kollatierung utf8mb4_unicode_520_ci seltsam aus, aber WordPress verwendet diese Kollatierung, wenn dies möglich ist. Andere Sortierungen sind die zweitbesten.

Beachten Sie diese Zeile:

// _unicode_520_ ist eine bessere Kollatierung. Wir sollten diese verwenden, wenn sie verfügbar ist.

Einige Plugins erstellen utf8mb4_unicode_520_ci Kollatierungstabellen, egal was passiert.

File: /var/www/html/test100.com/wp-includes/wp-db.php
761:    /**
762:     * Determines the best charset and collation to use given a charset and collation.
763:     *
764:     * For example, when able, utf8mb4 should be used instead of utf8.
765:     *
766:     * @since 4.6.0
767:     * @access public
768:     *
769:     * @param string $charset The character set to check.
770:     * @param string $collate The collation to check.
771:     * @return array The most appropriate character set and collation to use.
772:     */
773:    public function determine_charset( $charset, $collate ) {
774:        if ( ( $this->use_mysqli && ! ( $this->dbh instanceof mysqli ) ) || empty( $this->dbh ) ) {
775:            return compact( 'charset', 'collate' );
776:        }
777: 
778:        if ( 'utf8' === $charset && $this->has_cap( 'utf8mb4' ) ) {
779:            $charset = 'utf8mb4';
780:        }
781: 
782:        if ( 'utf8mb4' === $charset && ! $this->has_cap( 'utf8mb4' ) ) {
783:            $charset = 'utf8';
784:            $collate = str_replace( 'utf8mb4_', 'utf8_', $collate );
785:        }
786: 
787:        if ( 'utf8mb4' === $charset ) {
788:            // _general_ is outdated, so we can upgrade it to _unicode_, instead.
789:            if ( ! $collate || 'utf8_general_ci' === $collate ) {
790:                $collate = 'utf8mb4_unicode_ci';
791:            } else {
792:                $collate = str_replace( 'utf8_', 'utf8mb4_', $collate );
793:            }
794:        }
795: 
796:        // _unicode_520_ is a better collation, we should use that when it's available.
797:        if ( $this->has_cap( 'utf8mb4_520' ) && 'utf8mb4_unicode_ci' === $collate ) {
798:            $collate = 'utf8mb4_unicode_520_ci';
799:        }
800: 
801:        return compact( 'charset', 'collate' );
802:    }

Die utf8mb4_unicode_520_ci-Kollatierung (Unicode Collation Algorithm 5.2.0, Oktober 2010) ist eine Verbesserung gegenüber utf8mb4_unicode_ci (UCA 4.0.0, November 2003).

Es gibt kein Wort darüber, wann MySQL spätere UCAs unterstützen wird.

Die neueste UCA ist 9.0.0 http://www.unicode.org/reports/tr10/, aber MySQL unterstützt das nicht.

2
prosti