- Master (mysql Ver 8.0.16)
- Slave (mysql Ver 15.1 Distrib 10.3.15-MariaDB)
I have this error
Error 'Character set '#255' is not a compiled character set and is not specified in the '/usr/share/mysql/charsets/Index.xml' file' on query. Default database: 'test.database'. Query: 'BEGIN'
MASTER my.cnf
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
[client]
default-character-set=utf8
SLAVE my.cnf
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server = utf8mb4
Best Answer
The Master should not be a newer version than the Slave(s). In this case, 8.0 has a lot of new collations that do not exist in 5.7. And the defaults pull you toward them.
Plan A: Change the collations in the Master.
Plan B: Upgrade the Slave to 8.0.
Meanwhile, suggest filing a bug at bugs.mysql.com pointing out how awkward it is to upgrade a Master-Slave setup with 8.0 calling for a collation that does not exist in 5.7.