我正在尝试在两个 MariaDB 数据库之间设置复制,但是在 phpMyAdmin 中出现以下错误:
Error 'Character set '#610' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file'
我检查过mysqld --verbose --help
,两者都使用 UTF-8 作为默认字符集。
答案1
评论太长。另请检查所有其他字符集定义。
默认字符集变量
SHOW VARIABLES LIKE 'character_set%';
显示默认数据编码
数据库:
SELECT SCHEMA_NAME, DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME FROM information_schema.SCHEMATA;
表格:
SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE, TABLE_COLLATION FROM TABLES LIMIT 1000;
列:
SELECT COLUMN_NAME, TABLE_NAME, CHARACTER_SET_NAME, COLLATION_NAME FROM information_schema.COLUMNS WHERE CHARACTER_SET_NAME IS NOT NULL LIMIT 1000;
我添加了一个限制语句,仅显示前 1000 行。例如,调整为:WHERE CHARACTER_SET_NAME = '#610'
显示所有可用的字符集:
SHOW CHARACTER SET;
希望这有助于发现问题。