主库:192.168.55.9 集群中的SQL节点
从库:192.168.55.133 单独的SQL服务器
在主库上建表,从库上可以同步,但是在主库上执行数据操作时,从库上并不能同步。
原因是:必须保证主库和从库的字符集必须一致。
从库是通过:-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci 参数来编译安装的;;
所以对于主库,我们必须设置:my.cnf
[client]
default-character-set=utf8
[mysqld]
character-set-server = utf8
如果只设置了my.cnf,想要达到同步,在55.9上建表时,必须为每个表指定默认字符集才可以:ENGINE=NDB DEFAULT CHARSET=utf8;否则是不会同步的。
此时就需要再次修改db.opt文件:该文件用来存储当前数据库的默认字符集和字符校验规则。
修改为:
default-character-set=utf8
default-collation=utf8_general_ci