mysql乱码问题

来源:互联网 发布:几比几的比例怎么算法 编辑:程序博客网 时间:2024/05/17 20:34

出现乱码是因为字符编码方式的问题 经过实测发现需要重建数据库才可以显示中文

查询当前默认编码方式:

show variables like "%char%";

避免出现乱码

建立数据库时不要使用默认编码方式,

create database ***
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
建表的时候也不要使用默认编码方式

CREATE TABLE *** (
...
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

设置默认编码为utf8:
set names utf8;
设置数据库db_name默认为utf8:
ALTER DATABASE `db_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
设置表tb_name默认编码为utf8:
ALTER TABLE `tb_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;



设置默认编码为gbk
set names gbk;
设置数据库db_name默认编码为gbk:
ALTER DATABASE `db_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
设置表tb_name默认编码为gbk:
ALTER TABLE `tb_name` DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

InnoDB与MyISAM区别(转)

建数据库的时候缺省默认是InnoDB类型。InnoDB与 MyISAM类型的表区别,MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。 MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。这 样就可以根据数据表不同的用处是用不同的存储类型。
另外,MyISAM类型的二进制数据文件可以在不同操作系统中迁移。也就是可以直接从Windows系统拷贝到linux系统中使用。

修改:

ALTER TABLE tablename ENGINE = MyISAM;

ALTER TABLE tablename ENGINE= InnoDB;

0 0
原创粉丝点击