mysql_install_db неправильный набор символов и параметры сортировки

mysql_install_db неправильный набор символов и параметры сортировки

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

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

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

Еще кое-что странное. Если я запущу команду создания новой базы данных, она также будет использовать 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

введите описание изображения здесь

[Обновлять]

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

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

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

И мой.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

решение1

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

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

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

Связанный контент