mysql_install_db неправильная кодировка и сопоставление

. Я создаю новый сервер с помощью инструмента mysql_install_db. Он устанавливает правильный каталог данных, порт, пароль, службу и т. Д. Но моя проблема в том, что кодировка и сопоставление моих базовых таблиц неверны. Они должны быть utf8mb4 и utf8mb4_general_ci.

Я не могу найти способ изменить эти таблицы при установке. Когда я изменяю my.cnf/my.ini, он меняется только для вновь созданных баз данных. Но поскольку mysql_install_db создает системные базы данных, они создаются неправильно.

Также похоже, что мой msyql_install_db.exe не принимает аргумент файла по умолчанию-.

Странно и другое. Если я запускаю команду для создания новой базы данных, она также будет использовать utf8mb3, в то время как я явно устанавливаю COLLATE на utf8mb4_unicode_ci.

CREATE DATABASE IF NOT EXISTS tt DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci

Я использую последнюю версию mariadb 10.6.4.

Кто-нибудь знает, как настроить правильную кодировку и сопоставление с системными базами данных?

Tools\mariadb-winx64\bin\mysql_install_db.exe --datadir="Tools\mariadb-data" --password=PASSWORD --port=8137 --service=MyDB

enter image description here

[Обновление]

Я попытался настроить my.cnf следующим образом, но, похоже, это не дало результата.:https://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf-8-in-my-cnf

Также пробовал использовать другой способ с инициализацией-insecure, но результаты те же.. Я создал my.cnf с правильной кодировкой, но по-прежнему получил неправильную кодировку таблицы:

mariadb-winx64\bin\mariadbd.exe --defaults-file=./my.cnf --initialize-insecure --datadir=./Test

И my.cnf

[client]
default-character-set=utf8mb4


[mysql]
default-character-set=utf8mb4

[mysqld]
skip-grant-tables
port = 5137
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4
0
задан 10 September 2021 в 13:25
1 ответ

Не беспокойтесь о сгенерированных системой-таблицах(information_schemaи т. д.). Любая попытка изменить их может привести к серьезным проблемам.

Правда, для них имеет смысл быть utf8mb4, а не utf8mb3. Но оставьте это преобразование разработчикам MySQL и MariaDB, чтобы они (когда-нибудь)исправили это.

Это вероятно, лучше всего для ваших таблиц и соединений использовать utf8mb4. Но у вас есть власть над ними.

1
ответ дан 12 September 2021 в 17:17

Теги

Похожие вопросы