MariaDB 10.1.21设置多源复制指定CHANNEL改主库报语法错误求助
问题根源及解决方案
嘿,这个问题我太熟了!你踩了一个版本兼容的坑——MariaDB的FOR CHANNEL语法是从10.5.1版本才正式引入的,而你用的是10.1.21,这个版本根本不支持这个子句,所以才会抛出1064语法错误。
你从官方文档复制的语句应该是针对10.5+版本写的,没注意文档版本和自己的服务器版本不匹配,这很容易踩坑。
针对MariaDB 10.1.21的多源复制正确配置方式
10.1版本的多源复制是通过指定独立的主库信息文件和中继日志信息文件来区分不同主库的,具体操作如下:
- 配置第二个主库(master-203)时,不用
FOR CHANNEL,而是在CHANGE MASTER TO中指定专属文件:CHANGE MASTER TO MASTER_HOST='你的主库203IP', MASTER_USER='复制账号', MASTER_PASSWORD='复制密码', MASTER_LOG_FILE='主库当前的binlog文件名', MASTER_LOG_POS='主库当前的binlog位置', MASTER_INFO_FILE='master-203.info', RELAY_LOG_INFO_FILE='relay-log-203.info'; - 启动该主库对应的复制线程:
START SLAVE IO_THREAD FOR MASTER_INFO_FILE='master-203.info'; START SLAVE SQL_THREAD FOR MASTER_INFO_FILE='master-203.info'; - 查看该主库的复制状态:
SHOW SLAVE STATUS FOR MASTER_INFO_FILE='master-203.info'\G
小提示
以后查官方文档时,一定要先切换到自己服务器对应的MariaDB版本分支,避免拿高版本的语法用到低版本上。
内容的提问来源于stack exchange,提问作者minusnine
相关产品推荐
相关产品推荐

