Mysql – Master thesq8 slave Mariadb 10.3 Error 22

master-slave-replicationMySQL

  • 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.