mysql_install_db conjunto de caracteres y clasificación incorrectos

mysql_install_db conjunto de caracteres y clasificación incorrectos

Estoy creando un nuevo servidor con la herramienta mysql_install_db. Establece el directorio de datos, el puerto, la contraseña, el servicio, etc. correctos. Pero mi problema es que el juego de caracteres y la intercalación de mis tablas base son incorrectos. Deben ser utf8mb4 y utf8mb4_general_ci.

No encuentro una manera de cambiar estas tablas con la instalación. Cuando cambio my.cnf/my.ini, solo cambia para las bases de datos recién creadas. Pero dado que mysql_install_db crea las bases de datos del sistema, se crean incorrectamente.

También parece que mi msyql_install_db.exe no acepta un argumento de archivo predeterminado.

Algo más también es extraño. Si ejecuto el comando para crear una nueva base de datos, también usará utf8mb3 mientras configuro explícitamente COLLATE en utf8mb4_unicode_ci.

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

Estoy usando mariadb 10.6.4 que es la última versión.

¿Alguien sabe cómo configurar el juego de caracteres y la intercalación correctos en las bases de datos del sistema?

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

ingrese la descripción de la imagen aquí

[Actualizar]

Intenté configurar my.cnf con lo siguiente, pero parece que no tiene ningún efecto:https://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf-8-in-my-cnf

También intenté usar una forma diferente con inicialización insegura, pero también obtuve los mismos resultados. Creé un my.cnf con la codificación correcta, pero aún así obtuve la codificación de tabla incorrecta:

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

y mi.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

Respuesta1

No se preocupe por las tablas generadas por el sistema ( information_schema, etc.). Cualquier intento de modificarlos podría acarrear graves problemas.

Es cierto que tiene sentido que sean utf8mb4, no utf8mb3. Pero deje esa conversión en manos de los desarrolladores de MySQL y MariaDB para que la solucionen (algún día).

Élesprobablemente lo mejor parasutablas y conexiones serán utf8mb4. Pero sí tienes control sobre ellos.

información relacionada