PS:昨天一同事遇到mysql 5.5中文乱码问题,找我解决。解决了,有个细节问题网上没人说,我就总结一下。

一、登录MySQL查看用SHOW VARIABLES LIKE ‘character%’;(正确命令为show variables like "%char%";)下字符集,显示如下:



+--------------------------+----------------------------+

| Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | latin1 |

| character_set_system | utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+



character_set_database和character_set_server的默认字符集还是latin1。

二、最简单的完美修改方法,修改mysql的my.cnf文件中的字符集键值(注意配置的字段细节):



1、在[client]字段里加入default-character-set=utf8,如下:



[client]

port = 3306

socket = /var/lib/mysql/mysql.sock

default-character-set=utf8



2、在[mysqld]字段里加入character-set-server=utf8,如下:



[mysqld]

port = 3306

socket = /var/lib/mysql/mysql.sock

character-set-server=utf8



3、在[mysql]字段里加入default-character-set=utf8,如下:



[mysql]

no-auto-rehash

default-character-set=utf8



修改完成后,service mysql restart重启mysql服务就生效。注意:[mysqld]字段与[mysql]字段是有区别的。这点在网上没人反馈过。

使用SHOW VARIABLES LIKE ‘character%’;查看,发现数据库编码全已改成utf8。



+--------------------------+----------------------------+

| Variable_name | Value |

+--------------------------+----------------------------+

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | utf8 |

| character_set_filesystem | binary |

| character_set_results | utf8 |

| character_set_server | utf8 |

| character_set_system | utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+





4、如果上面的都修改了还乱码,那剩下问题就一定在connection连接层上。解决方法是在发送查询前执行一下下面这句(直接写在SQL文件的最前面):

SET NAMES 'utf8';

它相当于下面的三句指令:



SET character_set_client = utf8;

SET character_set_results = utf8;

SET character_set_connection = utf8;





网上很多其他方法不能彻底解决这个问题,这个可以完美解决!

永久链接 : http://www.ha97.com/5359.html

本文相关评论 -
才 11 条评论
2013-02-02 13:37:07
Firefox 18.0 Windows 7 x64 Edition

没遇到过这个问题,用的5.5.25版本,一切正常,估计是默认配置好的

Shylock

2013-03-24 11:43:30
Firefox 19.0 Ubuntu x64

确实是改好了,,,按照其他方式改后数据库都启动不了了。

2013-04-24 10:26:00
Sogou Explorer Windows 7 x64 Edition

你的方法在最新版本的mysql里面有问题

给一个真正完美的解决方案!

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

collation-server = utf8_unicode_ci

init-connect=’SET NAMES utf8′

character-set-server = utf8

郁蓝

2013-05-29 22:24:05
Firefox 21.0 GNU/Linux x64

最好的解决方案就是不要在数据库里面放中文。。。。。可这怎么可能呢?

ls

2013-08-28 02:04:51
Chromium 28.0.1500.71 Ubuntu

实在是非常感谢楼主,其他地方看到的都是直接在[clien] 和 [mysqld] 下加 defualt-character-set=utf-8,

楼主 给出了正确方法,要在[clien]下加defualt-character-set=utf-8,在[mysqld]加 character-set-service=utf8 ,还有在[mysql] 下也加defualt-character-set 完美解决了,找了几天了拜谢

2013-10-14 15:31:51
Firefox 24.0 Windows 7

[clien] 和 [mysql] 下加 defualt-character-set=utf-8 ? => 没有必要。

[mysqld]加 character-set-service=utf8 ? => 新版本的mysql会无法重启。

最简单的解决办法如下:

[mysqld]加 character-set-server = utf8

可按需添加 init-connect=’SET NAMES utf8′

野人

2013-10-17 10:37:44
Firefox 24.0 Windows 7 x64 Edition

遇到一模一样的问题,按您的方法解决了,非常感谢!!

野人

2013-10-17 10:39:41
Firefox 24.0 Windows 7 x64 Edition

遇到了一模一样的问题,用您的方法解决了,非常感谢!!!

小罗

2014-04-28 10:15:16
Google Chrome 34.0.1847.116 Windows 7 x64 Edition

解决了 感谢

ZZZ

2016-06-12 13:23:39
Google Chrome 42.0.2311.154 Windows 8.1 x64 Edition

为什么我都改了 WINDOWS的 SHOW VARIABLES LIKE ‘character%’ character set database 还是latin1 server也是latin1

2016-12-09 13:29:05
Google Chrome 54.0.2840.87 Windows 7 x64 Edition

[mysql]字段不用添加utf8,我添加后会报mysql启动错误

昵称 *

电子邮件 *

网站/博客

(原创)Linux下MySQL 5.5/5.6的修改字符集编码为UTF8(彻底解决中文乱码问题)的更多相关文章

  1. Linux 下 MySQL 的彻底卸载和安装配置字符集

    前言: Linux环境下MySQL的安装和配置在网上已经有很多教程了.之所以写这篇文章是因为在配置字符集的时候找了网上的一些教程发现并不能用导致折腾了一阵子.下面的教程均是亲自实践. MySQL的彻底 ...

  2. Linux下MySQL的彻底卸载和安装配置字符集

    前言: Linux环境下MySQL的安装和配置在网上已经有很多教程了.之所以写这篇文章是因为在配置字符集的时候找了网上的一些教程发现并不能用导致折腾了一阵子.下面的教程均是亲自实践. MySQL的彻底 ...

  3. Linux下MySQL 5.6的修改字符集编码为UTF8(彻底解决中文乱码问题)

    一.登录MySQL查看用SHOW VARIABLES LIKE ‘character%’;下字符集,显示如下:+--------------------------+----------------- ...

  4. 【转贴】Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)

    原文地址; http://www.ha97.com/5359.html PS:昨天一同事遇到mysql 5.5中文乱码问题,找我解决.解决了,有个细节问题网上没人说,我就总结一下. 一.登录MySQL ...

  5. Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)

    一.登录MySQL查看用SHOW VARIABLES LIKE 'character%';下字符集,显示如下: +--------------------------+---------------- ...

  6. Linux下MySQL5.6的修改字符集编码为UTF8

    一.登录MySQL查看用SHOW VARIABLES LIKE 'character%';下字符集,显示如下: +--------------------------+---------------- ...

  7. linux下mysql 查看默认端口号与修改端口号方法

    一.查看默认端口号 1.登录mysql [root@localhost ~]# mysql -uroot -pEnter password: 输入数据库密码: 2.使用show global vari ...

  8. MySQL修改字符集编码

    通过修改字符集编码为utf8,彻底解决中文问题. 一. 登录MySQL查看用SHOW VARIABLES LIKE 'character%':下字符集,显示如下: +----------------- ...

  9. 【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二进制和源码安装

      [MySQL]Linux下MySQL 5.5.5.6和5.7的RPM.二进制和源码安装 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后, ...

随机推荐

  1. Jenkins持续化集成

    Jenkins介绍 Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. 安装环境 操作系统:lin ...

  2. css3 媒体查询的学习。

    1.什么是媒体查询 媒体查询可以让我们根据设备显示器的特性(如视口宽度.屏幕比例.设备方向:横向或纵向)为其设定CSS样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成.媒体查询中可用于 ...

  3. http协议组成(请求状态码)

    http请求由:请求行:消息报头:请求正文组成 //请求行 Request URL: http://172.32.4.33:8080/operation/v2/autoServer/queryAuto ...

  4. PHP.25-TP框架商城应用实例-后台2-商品列表页-搜索、翻页、排序

    商品列表页 1.翻页 控制器GoodsController.class.php添加方法lst(),显示列表页 在商品模型GoodsModel.class.php类中添加search方法 /** *实现 ...

  5. 基于CSS多列实现瀑布流

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. MyBatis---自动创建表

    该项目基于Maven实现 该项目实现了在项目启动时,对数据库表进行操作 源码下载 实现步骤: 1.向pom.xml文件添加maven依赖 <dependency> <groupId& ...

  7. 如何让button保持点击状态

    http://blog.csdn.net/u010957508/article/details/38385207 他的原理就是在代码里面: view.setSelected(true); 而其他的: ...

  8. django之python3.4及以上连接mysql的一些问题记录

    首先,祭出大杀器whl https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient django1.x与django2.x 在项目的写法上有一些区别 ...

  9. Pascal 基础教程

    Pascal现在还有人想学习吗?先给出一本不错的Pascal教程,Object Pascal的教程我日后给出. Pascal基础教程       第一课 初识PASCAL语言           …… ...

  10. 使用java去对比2个带数学公式的字符串

    首先大家看到这个题目,可能会不屑一顾,呵呵,是的,起初我也认为这是个很简单的任务,当任务拿到手里后,经过我作为程序员来讲已经磨炼的无比通透的大脑来讲发现这其实是个坑. 故事的起因是这样的,想开发一款给 ...