解决nginx_1.4+MySql_5.6 中文乱码(问号)问题
2016-03-04 20:45
323 查看
【问题背景】使用阿里云ESC,运行Aliyun Linux,购买并安装了驻云开发维护的Linux一键安装web环境。配置为nginx 1.4 MySql 5.6,创建数据库并插入含有中文的数据后,用DHC调试时中文出现了乱码,具体表现为中文部分被用“?”代替。
【解决之道】
1、首先我确定我的数据库、表、列的编码都已经设置为utf-8,该问题不是由于这些因素引起。
2、在解决中,主要参考了这篇文章Linux下MySQL 5.5/5.6的修改字符集编码为UTF8(彻底解决中文乱码问题),不过,该文中所述解决方法和情况并不完全适合我的问题,文章下边的评论中的观点很有价值。
3、具体的解决方法是:打开MySql的配置文件——my.cnf,添加
然后重启MySql服务即可。注意,仅仅加这个就好了,不要添加更多的内容。
4、在解决中,也踩了几个坑,罗列如下,防止再有人入坑:
(1).如参考的这篇文章中某个评论者所述:添加
这两部分并没有卵用,并不会将client对应的编码设置为utf-8;
(2). 如下一条可以按需添加,具体什么条件下添加我也不清楚,就我的问题,加了也没有问题,没有更多研究:
【特别提醒】
修改配置文件时,不要简单地复制粘贴,一定要确保所有的字符都是英文的,误带入中文字符可能导致配置不正确,甚至无法启动!
【解决之道】
1、首先我确定我的数据库、表、列的编码都已经设置为utf-8,该问题不是由于这些因素引起。
2、在解决中,主要参考了这篇文章Linux下MySQL 5.5/5.6的修改字符集编码为UTF8(彻底解决中文乱码问题),不过,该文中所述解决方法和情况并不完全适合我的问题,文章下边的评论中的观点很有价值。
3、具体的解决方法是:打开MySql的配置文件——my.cnf,添加
[mysqld] character-set-server = utf8`
然后重启MySql服务即可。注意,仅仅加这个就好了,不要添加更多的内容。
4、在解决中,也踩了几个坑,罗列如下,防止再有人入坑:
(1).如参考的这篇文章中某个评论者所述:添加
[client] default-character-set=utf8 [mysql] default-character-set=utf8
这两部分并没有卵用,并不会将client对应的编码设置为utf-8;
(2). 如下一条可以按需添加,具体什么条件下添加我也不清楚,就我的问题,加了也没有问题,没有更多研究:
init-connect='SET NAMES utf8'
【特别提醒】
修改配置文件时,不要简单地复制粘贴,一定要确保所有的字符都是英文的,误带入中文字符可能导致配置不正确,甚至无法启动!
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- Android之获取手机上的图片和视频缩略图thumbnails
- nginx代理指定目录
- 访问Nginx发生SSL connection error的一种情况
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 数据库链接字符串查询网站
- Nginx+Naxsi部署专业级Web应用防火墙
- MySQL 备份和恢复策略
- CentOS 6.2实战部署Nginx+MySQL+PHP
- mac下安装mysql(转载)