由于在安装了mysql数据库后没有及时的设置字符集就进行了创建数据库的操作,字符集的问题成为了一个很大的困扰,后来查询了无数的博客或者论文终于解决了这个让我难受了很久的问题,在解决这个问题前我们首先需要对字符集有一个认识。包括客户端字符集,服务器字符集,数据库字符集,数据表字符集和数据库字符集。
一般情况下统一字符集就可以解决中文无法录入的问题,下面我讲一下我的解决方法,在进行mysql后通过(show variables like '%char%';)或者(show variables like 'character%)查看客户端,服务器和数据库的字符集
其中character_set_client是客户端字符集,character_set_database是数据库字符集,character_set_server是服务器字符集。ps:character_set_client,character_set_connection,character_set_results这三项都是在服务器连接进来时完成设定的,我们可以通过 set names utf8同时修改以上的这三个字符集,不过 通常我们一般在my.ini修改,因为这样可以修改character_set_database等属性,在my.ini找到这一行(default-character-set=latin1),将字符集修改为utf8,然后找到找到这一行(character-set-server=latine1),将字符集修改为utf8,在设置成功后重启mysql的服务,再次查询就与我现在的查询结果相同了。
之后是查询MySQL 数据表的字符集,语句是(show table 表名 from sqlstudy_db like '%countries%';)
在最后面的(ENGINE=InnoDB DEFAULT CHARSET =utf)中可以看到当前字符集为utf8,(alter table Student default character set charater name ....)来修改表单的字符集。
最后关于字段的字符集问题 通过(show full columns from Student;)可以查询当前的Student的字符集
修改的方法
(alter table Student change sno sname character set character_name ....)
一般在通过设置这些后就可以正常的进行了。
注意,在设置完后要重启mysql的服务哦