При импорте базы данных отображается ошибка

Я импортировал базу данных своего сайта на другой сервер, но он показывает эту ошибку, о которой я понятия не имею:

Я попытался импортировать базу данных несколько раз, но не удалось. Я также проверил поле «Добавить таблицу распаковки», которое появляется при экспорте файла базы данных, но ничего не делало.

Эта проблема возникает из-за того, что ваш сервер не поддерживает utf8mb4_unicode_520_ci сортировки utf8mb4_unicode_520_ci .

Чтобы решить эту проблему, вы должны преобразовать сортировку для всех таблиц с помощью utf8mb4_unicode_520_ci в utf8_general_ci

Если вы экспортируете через phpmyadmin, вы можете:

  1. Перейдите на вкладку «Экспорт» для базы данных

  2. Нажмите переключатель «Пользовательский»

  3. Перейдите в раздел «Параметры, специфичные для формата», и измените раскрывающееся меню «Система баз данных или более старый сервер MySQL для максимальной совместимости вывода с:» от NONE до MYSQL40.

  4. Прокрутите страницу вниз и нажмите «GO».

ИЛИ запустите следующий запрос для каждой из затронутых таблиц:

 ALTER TABLE myTable CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci 

UPDATE: вы также должны заменить в своем экспортированном файле sql TYPE=MyISAM с помощью ENGINE=MyISAM

Для некоторых, сортировка utf8mb4_unicode_520_ci выглядит странно, но WordPress использует эту сортировку, когда это возможно. Другие сопоставления являются вторыми.

Обратите внимание на эту строку:

// _unicode_520_ – лучшее сопоставление, мы должны использовать это, когда оно доступно.

Некоторые плагины будут создавать utf8mb4_unicode_520_ci сопоставления utf8mb4_unicode_520_ci независимо от того, что.

 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: } 

utf8mb4_unicode_520_ci (Unicode Collation Algorithm 5.2.0, октябрь 2010 г.) – это улучшение по сравнению с utf8mb4_unicode_ci (UCA 4.0.0, ноябрь 2003 г.).

Нет слов, когда MySQL будет поддерживать более поздние UCA.

Самый последний UCA – это 9.0.0 http://www.unicode.org/reports/tr10/ , но MySQL этого не поддерживает.