mysql_install_db conjunto de caracteres e agrupamento incorretos

mysql_install_db conjunto de caracteres e agrupamento incorretos

Estou criando um novo servidor com a ferramenta mysql_install_db. Ele define o datadir, porta, senha, serviço etc. corretos. Mas meu problema é que o conjunto de caracteres e o agrupamento de minhas tabelas base estão errados. Eles precisam ser utf8mb4 e utf8mb4_general_ci.

Não consigo encontrar uma maneira de alterar essas tabelas com a instalação. Quando altero my.cnf/my.ini, ele muda apenas para bancos de dados recém-criados. Mas como mysql_install_db cria os bancos de dados do sistema, eles são criados incorretamente.

Também parece que meu msyql_install_db.exe não aceita um argumento de arquivo padrão.

Outra coisa também é estranha. Se eu executar o comando para criar um novo banco de dados, ele também usará utf8mb3 enquanto eu defino explicitamente COLLATE como utf8mb4_unicode_ci.

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

Estou usando o mariadb 10.6.4, que é a versão mais recente.

Alguém sabe como configurar o conjunto de caracteres e agrupamento corretos nos bancos de dados do sistema?

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

insira a descrição da imagem aqui

[Atualizar]

Tentei configurar my.cnf com o seguinte, mas parece não surtir efeito:https://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf-8-in-my-cnf

Também tentei usar uma maneira diferente com inicialização insegura, mas também os mesmos resultados. Criei um my.cnf com a codificação correta, mas ainda obtive a codificação de tabela errada:

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

E meu.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

Responder1

Não se preocupe com as tabelas geradas pelo sistema ( information_schema, etc). Qualquer tentativa de modificá-los pode levar a sérios problemas.

É verdade que faz sentido que sejam utf8mb4, não utf8mb3. Mas deixe essa conversão para os desenvolvedores do MySQL e MariaDB consertarem (algum dia).

Istoéprovavelmente melhor paraseutabelas e conexões devem ser utf8mb4. Mas você tem controle sobre eles.

informação relacionada