`
san_yun
  • 浏览: 2673368 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

mysql 设置字符集 中文乱码

 
阅读更多

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

+--------------------------+----------------------------+
| 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;


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

分享到:
评论

相关推荐

    设定mysql字符集解决终端乱码

    通过合理设置 MySQL 的字符集,可以有效避免因字符集不匹配导致的乱码问题。具体而言,需要注意客户端和服务端之间的字符集设置、创建表时的字符集选择以及数据插入和查询时的字符集处理等几个方面。希望本文能帮助...

    查看mysql字符集MySQL 乱码的根源是的 MySQL 字符

    查看mysql字符集MySQL 乱码的根源是的 MySQL 字符

    解决连接mysql中文显示乱码

    解决MySQL连接时中文显示乱码的问题,关键在于确保数据库、连接参数以及应用程序内部各环节的字符集设置保持一致,并采用适合中文字符的编码方式,如UTF-8。通过上述步骤,可以有效避免中文乱码现象,保证数据的正确...

    MYSQL字符集与乱码问题分析

    《MySQL字符集与乱码问题分析》一文深入探讨了字符编码的历史背景、技术细节以及在MySQL中的应用,尤其关注解决常见的乱码问题。本文将根据提供的内容摘要,详细阐述其中涉及的关键知识点。 ### 字符集背景知识 ##...

    mysql 字符集 乱码问题

    ### MySQL字符集与乱码问题解析 在MySQL数据库管理中,字符集的配置与使用是十分重要的环节之一,尤其在处理多语言环境的数据时更是如此。如果字符集配置不当,很容易导致数据插入、查询过程中出现乱码问题。本文将...

    设置mysql字符集

    ### 设置MySQL字符集的方法 #### 通过配置文件设置 在MySQL安装过程中或之后,可以通过编辑MySQL的配置文件(通常是`my.ini`或`my.cnf`),来全局设置字符集和校对集。具体操作如下: 1. 打开MySQL的配置文件,...

    Mysql运行SQL语句中文乱码问题的解决方法

    当MySQL处理中文字符时,如果当前使用的字符集与数据的实际字符集不一致,就会出现乱码。 #### 二、检查系统及数据库的字符集设置 首先需要确认服务器和数据库的字符集设置是否正确。可以通过以下SQL命令来查看: ...

    mysql字符集设置

    MySQL字符集设置是数据库管理中的一个重要环节,尤其是在处理多语言数据或者有特殊字符需求的应用中。字符集决定了数据库、表以及字段如何存储和显示字符,影响到数据的正确性及兼容性。以下将详细讲解MySQL字符集的...

    在DELPHI中使用MyDAC连接MySQL数据库时中文显示乱码的解决方法

    2. **数据库表的字符集设置**:如果MySQL数据库中的表字符集不是统一的UTF-8,那么在查询时就可能出现乱码现象。 3. **连接参数配置不当**:在使用MyDAC组件建立数据库连接时,如果没有正确设置字符集参数,也可能...

    mysql汉字乱码问题

    总之,解决MySQL中的汉字乱码问题需要从多个层面进行检查和调整,确保字符集在整个数据处理链路中的一致性。理解字符集和编码的概念,以及它们在MySQL中的应用,对于避免和解决这类问题至关重要。

    jsp+mysql中文乱码解决方案集合

    ### jsp+mysql中文乱码解决...正确设置MySQL的字符集和校对集是关键,同时还需要注意整个应用程序环境的一致性,才能确保中文字符能够正确地存储和显示。希望本文提供的解决方案能帮助到正在面对这一问题的开发者们。

    解决 docker mysql 中文乱码问题

    docker mysql 字符集设置 使用 docker 启动 mysql 容器可能会出现中文乱码的情况,这里记录如何制作支持中文的 mysql 镜像 docker版本:18.06 mysql 版本:5.7 1. 创建 my.cnf 文件 [client] default-character-set=...

    mysql odbc字符集设置(中文显示乱码)

    1. **MySQL服务器端的字符集设置**:默认情况下,MySQL服务器可能设置为不同的字符集(如latin1),而这种字符集不支持中文。 2. **客户端的字符集设置**:客户端(如Delphi应用程序)可能也设置了特定的字符集,...

    Navicat for MySql 导入EXCEL中文乱码问题解决

    - 在处理中文乱码问题时,尽量使用统一的字符集,比如统一使用“utf8mb4”或者“gbk”等,以减少因为字符集不一致导致的问题。 - 在导入大量数据时,可以考虑先导入少量数据进行测试,确保中文字符能够正常显示后再...

    java插入mysql中文乱码解决

    1. **字符集不一致**:如果Java程序、JDBC驱动、MySQL服务器以及数据库表的字符集设置不一致,就会导致中文乱码。例如,如果Java程序使用的是GBK编码,而MySQL服务器使用的是UTF-8编码,则会导致乱码。 2. **连接...

    Mysql中文乱码问题完美解决方案.doc

    中文乱码问题通常是由于数据库、应用程序以及服务器之间字符集不一致造成的。解决这一问题的关键在于确保各个环节的字符集设置保持一致。上述四种方法分别针对不同的场景提供了具体的解决方案: 1. **调整客户端与...

    Mysql字符集编码详解

    Mysql字符集编码详解 Mysql数据库中的字符集编码问题是许多开发者经常遇到的一个问题,特别是在JAVA项目中。解决这个问题需要从多方面入手,包括服务器、数据库、数据表和连接等四个层次。这篇文章将详细介绍如何...

    MySQL乱码解决方案数据库乱码

    #### 三、MySQL字符集详解 1. **MySQL 4.1之前的版本**: - 在MySQL 4.0及之前版本中,主要使用的是`latin1`字符集,这是一个单字节编码方案,仅支持西欧语言。 - 这种字符集对于中文等多字节编码的语言支持不佳...

Global site tag (gtag.js) - Google Analytics