问题:
在普通用户权限下执行 mysql -u root -p进入mysql数据库,中间步骤省略,插入数据:insert into 库名(属性)values('汉字');
会出现如下提示: Query OK, 1 row affected, 1 warning (0.00 sec) 表明出现错误,没有插入成功,然后执行select * from 表名 就会出现如下的问题:显示的表中出现乱码或者问号。
如图:

解决方案:
首先重新打开一个终端窗口(方便操作),进入root用户模式
执行 vim/vi /etc/mysql/my.cnf (此路径根据个人的安装情况,一般默认是这个路径)
在my.cnf 文件中在对应位置修改(添加)如下内容:
[client] default-character-set=utf8
[mysqld] character-set-server=utf8 init_connect='set names utf8'
注意:此处不要添加 default-character-set=utf8 ,否则在重启数据库的时候会出现failed to start错误!!!!!
[mysql] default-character-set=utf8
以上内容修改完毕,保存退出。
执行service mysql restart 重启mysql数据库
执行mysql -u root -p(此处重新登录是为了避免出现由于没有修改文档出现之前的乱码的问题)重新进入数据库
执行show variables like 'character_set_%';就会出现如下图所示内容:

然后执行insert into 库名(属性)values('汉字')重新插入中文数据,此时就会正确显示中文了!!!如下图所示:

备注:此文章在参考他人的许多文章总结之后的结果!!!希望给大家提供帮助!转载请注明出处!谢谢!
|