Я создаю новый сервер с помощью инструмента mysql_install_db. Он устанавливает правильный каталог данных, порт, пароль, службу и т. Д. Но моя проблема в том, что кодировка и сопоставление моих базовых таблиц неверны. Они должны быть utf8mb4 и utf8mb4_general_ci.
Я не могу найти способ изменить эти таблицы при установке. Когда я изменяю my.cnf/my.ini, он меняется только для вновь созданных баз данных. Но поскольку mysql_install_db создает системные базы данных, они создаются неправильно.
Также похоже, что мой msyql_install_db.exe не принимает аргумент файла по умолчанию.
Странно и другое. Если я запускаю команду для создания новой базы данных, она также будет использовать utf8mb3, в то время как я явно устанавливаю COLLATE в utf8mb4_unicode_ci.
СОЗДАТЬ БАЗУ ДАННЫХ, ЕСЛИ НЕ СУЩЕСТВУЕТ tt НАБОР СИМВОЛОВ ПО УМОЛЧАНИЮ utf8mb4 COLLATE utf8mb4_unicode_ci
Я использую последнюю версию mariadb 10.6.4.
Кто-нибудь знает, как настроить правильную кодировку и сопоставление с системными базами данных?
Инструменты\mariadb-winx64\bin\mysql_install_db.exe --datadir="Инструменты\mariadb-данные" --пароль=ПАРОЛЬ --port=8137 --service=MyDB
[Обновлять]
Я попытался настроить my.cnf следующим образом, но, похоже, это не помогло: https://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf-8-in-my-cnf
Также пробовал использовать другой способ с инициализацией-небезопасно, но также с теми же результатами. Я создал my.cnf с правильной кодировкой, но все равно получил неправильную кодировку таблицы:
mariadb-winx64\bin\mariadbd.exe --defaults-file=./my.cnf --initialize-insecure --datadir=./Test
И мой .cnf
[клиент]
набор символов по умолчанию = utf8mb4
[mysql]
набор символов по умолчанию = utf8mb4
[mysqld]
пропустить грант-таблицы
порт = 5137
сервер сопоставления = utf8mb4_unicode_ci
init-connect='УСТАНОВИТЬ НАЗВАНИЯ utf8mb4'
сервер набора символов = utf8mb4