我是在windows上装的mysql,有两台机器,做了主从复制。
在master上依次执行:
create database test character set utf8;
use test;
create table message (msg_id int primary key,content varchar(200),type int,creator_id int,create_time datetime) default charset=utf8;
然后从拷了个造数据的存储过程:
CREATE PROCEDURE `message_insert_procedure`(loop_times INT)
BEGIN
DECLARE var INT DEFAULT 0;
WHILE var<loop_times DO
SET var=var+1;
INSERT INTO test.message (msg_id,content,type,creator_id,create_time)
VALUES (var,CONCAT(var,' - ','中文'),0,0,now());
END WHILE;
END.
执行完以上语句后,slave上也建好了数据库、表、和存储过程。
在master上执行call test.message_insert_procedure(1000);
master的表中有1000条数据,slave中没数据。
在slave上执行 show slave status;
报错:Illegal mix of collations (latin1_swedish_ci,IMPLICIT), (utf8_general_ci,COERCIBLE), (utf8_general_ci,COERCIBLE) for operation 'concat'' on query。
在master上依次执行:
create database test character set utf8;
use test;
create table message (msg_id int primary key,content varchar(200),type int,creator_id int,create_time datetime) default charset=utf8;
然后从拷了个造数据的存储过程:
CREATE PROCEDURE `message_insert_procedure`(loop_times INT)
BEGIN
DECLARE var INT DEFAULT 0;
WHILE var<loop_times DO
SET var=var+1;
INSERT INTO test.message (msg_id,content,type,creator_id,create_time)
VALUES (var,CONCAT(var,' - ','中文'),0,0,now());
END WHILE;
END.
执行完以上语句后,slave上也建好了数据库、表、和存储过程。
在master上执行call test.message_insert_procedure(1000);
master的表中有1000条数据,slave中没数据。
在slave上执行 show slave status;
报错:Illegal mix of collations (latin1_swedish_ci,IMPLICIT), (utf8_general_ci,COERCIBLE), (utf8_general_ci,COERCIBLE) for operation 'concat'' on query。
另外主从机器上也都是下面这样的:而且在slave上执行call test.message_insert_procedure(1000);也是有1000条数据的。
就是复制的时候会报上面的错。
MySQL 中文显示乱码