Импорт Phpmyadmin MYSQL: некоторые символы не импортируются

Я переношу сайт wordpress с одного сервера на другой. Я экспортировал дамп sql со старого сервера и импортировал его в базу данных нового сервера через phpmyadmin. Но некоторые символы, такие как апостроф и дефис, отображаются неправильно.

Я полагаю, что это из-за разной кодировки базы данных на двух серверах. Старый сервер имеет кодировку набора символов как utf8mb4_unicode_520_ci, а новый сервер имеет кодировку latin1_swedish_ci.

Я попытался изменить «Набор символов файла:» дампа экспорта, установив его на iso-8859-1, чтобы он затем правильно импортировался в latin1_swedish_ci, но выдает ошибку во время импорта синтаксиса SQL.

Как я могу правильно перенести данные сюда?

Если вы знаете, какая была старая кодировка, почему бы не использовать ее на новом сервере?

RiggsFolly 10.12.2020 15:15

@RiggsFolly У меня нет доступа суперадминистратора для изменения кодировки на новом сервере.

Saeesh Tendulkar 11.12.2020 05:19

Какие параметры использовались на дампе? Что использовалось в нагрузку? Есть один способ заставить дамп+загрузку «делать правильные вещи», и много способов все испортить.

Rick James 11.12.2020 17:54
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
3
249
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если у вас нет особой причины использовать "latin1_swedish_ci" (и я не могу представить, что вы это сделаете - в какой-то момент это было значение MySQL по умолчанию), вы вообще не должны его использовать. Измените кодировку набора символов на новом сервере, чтобы она соответствовала предыдущей.

У меня нет доступа суперадминистратора для изменения кодировки на новом сервере. Я изменил кодировку таблиц, поэтому теперь она отлично работает для будущих данных. Но как исправить старые данные?

Saeesh Tendulkar 11.12.2020 05:20

Данные никогда не должны быть «изменены» или «исправлены»; база данных - единственный источник правды. Вы не должны изменять данные вообще. Выясните, у кого есть права на изменение кодировки набора символов, и попросите их сделать это. «latin1_swedish_ci» — обычно бесполезная кодировка, и вы должны делать все правильно.

Daydream Nation 11.12.2020 18:08

Ржу не могу. Хорошо сказано. Сделал именно так, как вы сказали

Saeesh Tendulkar 13.12.2020 16:09

Другие вопросы по теме