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가 기본 파일 인수를 허용하지 않는 것 같습니다.

다른 것도 이상해요. 새 데이터베이스를 생성하는 명령을 실행하면 COLLATE를 utf8mb4_unicode_ci로 명시적으로 설정하는 동안 utf8mb3도 사용됩니다.

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

또한 초기화가 안전하지 않은 다른 방법을 사용해 보았지만 결과는 동일했습니다. 올바른 인코딩으로 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

답변1

시스템 생성 테이블( information_schema등)에 대해 걱정하지 마십시오. 이를 수정하려고 하면 심각한 문제가 발생할 수 있습니다.

사실, utf8mb3이 아니라 utf8mb4인 것이 합리적입니다. 하지만 (언젠가는) 변환 작업을 MySQL 및 MariaDB 개발자에게 맡기십시오.

그것~이다아마도 가장 좋은당신의테이블과 연결은 utf8mb4입니다. 하지만 당신은 그들을 통제할 수 있습니다.

관련 정보