Я использую Adminer для выгрузки базы данных и перемещения ее в новую базу данных. Обе базы данных находятся на одном сервере MySQL 5.5.5-10.1.41-MariaDB-0 + deb9u1. Обе базы данных используют параметры сортировки latin1_swedish_ci
, как показано в Adminer.
Эти строки случайных символов появляются в таблицах базы данных, то есть bs00fgcb
для того, что должно быть именем, hgaibbsf@example.org
для того, что должно быть электронной почтой,и т. д.
Эти данные, конечно же, выглядят нормальными в интерфейсе приложения перед экспортом базы данных, но отображаются как мусор выше после импорта в другую базу данных и просмотра другим приложением.
Эти данные мусора появляются в дампе базы данных при просмотре в текстовом редакторе с использованием UTF-8, прежде чем я импортирую в новую базу данных. Другие данные, по-видимому, не повреждены.
Если я импортирую дамп базы данных перед его просмотром в текстовом редакторе, я получу те же данные мусора. Я пытался экспортировать и импортировать базу данных несколько раз.
Это заголовок файла экспорта:
-- MySQL dump 10.15 Distrib 10.0.36-MariaDB, for debian-linux-gnu (x86_64)
--
-- Host: localhost Database: example_sql
-- ------------------------------------------------------
-- Server version 10.0.36-MariaDB-0ubuntu0.16.04.1
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
Похоже, что для вызова таблицы для каждого набора таблиц при импорте вызывается:
DROP TABLE IF EXISTS `example_table`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
Почему я получаю эти данные гаража при экспорте или импорте? Где это происходит?
Я не хочу пытаться преобразовать параметры сортировки таблиц базы данных, используемые активным приложением, перед экспортом.
Я использовал select convert(binary convert(field_name using latin1) using utf8) from table_name
в одной импортированной таблице, ноэто ничего не сделало.