尝试插入输入:
原因是字符集问题
1 查看字符集
show variables like 'character%';
show variables like '%char%';
看看出现的结果:
默认的服务器用了latin1,所以会乱码。
2 修改my-huge.cnf
在/usr/share/mysql/ 中找到my-huge.cnf的配置文件,
拷贝其中的my-huge.cnf 到 /etc/ 并命名为my.cnf
然后修改my.cnf:
[client]
default-character-set=utf8
[mysqld]
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci
[mysql]
default-character-set=utf8
注意,以上的代码不在连续的同一地方,请不要全部粘贴在某个同一地方。
注意:此法同样适用于window版MySQL,具体需要修改的配置文件请看其他博文。
3、重新启动mysql
查看原库的字符集:show create database mydb
但是原库的设定不会发生变化,参数修改之对新建的数据库生效
将字符集修改为utf8,然后创建新库测试不乱码。★
这一步非常重要,一定要新建数据库、数据表测试!
新的数据表中文乱码问题已解决,旧的数据表乱码问题未解决。
4、已生成的库表字符集如何变更
修改数据库的字符集
mysql> alter database mydb character set 'utf8';
修改数据表的字符集
mysql> alter table mytbl convert to character set 'utf8';
但是原有的数据如果是用非’utf8’编码的话,数据本身不会发生改变。
总结
1.向新安装好的MySQL服务器中插入数据会出现中文乱码的情况,解决方式是先copy并修改配置文件/usr/share/mysql/ 下的my-huge.cnf文件,将字符集改为utf8.
2.重启服务器,检查字符集修改情况。
3.一定要新建数据库和数据表进行测试,因为旧的数据表同样会出现乱码,有的人会因为查看旧的数据表乱码而怀疑自己没改好。
4.如果旧的数据表不重要就直接用新的表替换。
5.如果旧的数据表很重要则需要修改已存在数据库和数据表的字符集。