Консоль mariadb не принимает видоизмененный гласный звук (umlaute) при использовании 'source Table.sql' - PullRequest
0 голосов
/ 04 июня 2018

Недавно я установил новый Raspi 3 с Raspbian Stretch Lite.(ЛАМПА)

Теперь я бы хотел переместить базу данных из Raspi 2 в новую Raspi 3, используя файлы создания, которые есть у меня в Raspi 2. В Raspi 3 настроена MariaDB, в Raspi 2 MySQL.

Для создания БД я использую упомянутые sql-файлы из Raspi 2.(например, 'source 00_CreateDB.sql', 'source 10 _... sql')На Raspi 2 все работало нормально, на Raspi 3 все видоизмененные гласные игнорируются или заменяются на «?», Когда я устанавливаю таблицы с использованием файлов sql.(например, «source 10_CreateDB.sql»)Когда я копирую и вставляю код таблицы из файла sql, все создание и вставка работает нормально.

Также при отображении содержимого БД в браузере с php-скриптами все работает нормально.(ВЫБРАТЬ, ОБНОВИТЬ, ...)

Есть идеи для такого поведения?Я имею в виду, что скопированный и вставленный код работает, но когда используется «source CreateTableA.sql», измененные гласные являются неправильными?Я уже пробовал несколько способов выполнить мои файлы с MySQL, но все не удалось.Как 'mysql -u root -p <10_CreateDB.sql' ...Вот код, который я использовал, скопированный из файлов. </p>

DROP DATABASE IF EXISTS `pool`;
CREATE DATABASE `pool` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

CREATE TABLE IF NOT EXISTS `TempSensorName` (
  `DeviceID`                char(16)     NOT NULL,
  `DisplayNumber`           tinyint      unsigned NOT NULL auto_increment, #-- Displayed in order of these number
  `Name`                    varchar(100) default "",
  `Comment`                 varchar(256) default "",

  `Override`                tinyint      unsigned NOT NULL default 0, #-- Override 0:NO, 1:On (to OverrideVal)
  `OverrideVal`             DECIMAL(6,3) default 0,                   #-- Override Value
  `DisplayLive`             tinyint      unsigned NOT NULL default 0, #-- DisplayLive status on browser top window 0:No, 1:Yes
  `DisplayMain`             tinyint      unsigned NOT NULL default 0, #-- DisplayMain status on browser main window 0:No, 1:Yes
  `DisplayMainColor`        varchar(30),                              #-- DisplayMainColor on browser main window
  `Customer`                tinyint      unsigned NOT NULL,           #-- Customer who changed the value
  `LastUpdateDateTime`      timestamp             NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (`DeviceID`),
  UNIQUE  KEY  `ukDisplayNumber` (`DisplayNumber`)
) ENGINE=InnoDB AUTO_INCREMENT=10;

INSERT INTO `TempSensorName` (`DeviceID`,        `Name`,     `Comment`,        `Override`, `OverrideVal`, `DisplayLive`, `DisplayMain`, `DisplayMainColor`, `Customer`) VALUES
                             ('CPU',             'CPU',      'CPU Temperatur', 0,           NULL,         1,             0,             0,                  100),
                             ('28-03160644beff', 'Zulauf',   'erster Sensor',  0,           NULL,         0,             1,             '#FF0000',          100),
                             ('28-03160644e7ff', 'Rücklauf', 'zweiter Sensor', 0,           '3.7',        0,             1,             '#00FF00',          100),
                             ('28-0416021c67ff', 'Pumpen',   'dritter Sensor', 0,           0,            0,             0,             '#0000FF',          100);
SELECT * FROM TempSensorName ORDER BY DisplayNumber;


Здесь все я проверил, что на Raspi 3 его правильный набор:

Только UTF_8 установлен.Языковой стандарт установлен в UTF_8:

LANG=de_DE.UTF-8
LANGUAGE=
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=

MariaDB all установлен в utf8, а при создании базы данных по умолчанию устанавливается utf8:

SELECT * FROM INFORMATION_SCHEMA.SCHEMATA;
+--------------+--------------------+----------------------------+------------------------+----------+
| CATALOG_NAME | SCHEMA_NAME        | DEFAULT_CHARACTER_SET_NAME | DEFAULT_COLLATION_NAME | SQL_PATH |
+--------------+--------------------+----------------------------+------------------------+----------+
| def          | information_schema | utf8                       | utf8_general_ci        | NULL     |
| def          | mysql              | utf8mb4                    | utf8mb4_general_ci     | NULL     |
| def          | performance_schema | utf8                       | utf8_general_ci        | NULL     |
| def          | phpmyadmin         | utf8mb4                    | utf8mb4_general_ci     | NULL     |
| def          | pool               | utf8mb4                    | utf8mb4_general_ci     | NULL     |
+--------------+--------------------+----------------------------+------------------------+----------+

show variables like 'char%'; show variables like 'collation%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)


+----------------------+--------------------+
| Variable_name        | Value              |
+----------------------+--------------------+
| collation_connection | utf8mb4_general_ci |
| collation_database   | utf8mb4_general_ci |
| collation_server     | utf8mb4_general_ci |
+----------------------+--------------------+
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...