mysql升级,从老版本的mysql将数据导入到新版的mysql后,发现老版本里面某个库里面的各个表编码都不尽相同,有些表是gbk编码,有些是utf8编码。这样造成的问题就是表关联查询的时候,两表编码不一致造成错误:

解决办法是统一库所有表编码,将所有的表改成utf8编码。
-- 查询database下的所有表名
select table_name from information_schema.`TABLES` where TABLE_SCHEMA = 'dbname';
-- 修改表默认编码为utf8。
alter table `tablename` default character set utf8;
-- 将表中字段已存在的数据转换为utf8字符。
alter table `tablename` convert to character set utf8;
网友评论