zoukankan      html  css  js  c++  java
  • Mysql-5.6乱码问题

    1 参考:http://www.testwo.com/blog/6930

      mysql数据库默认的编码是:Latin1,要想支持中文需要修改为gbk/utf8的编码格式。

     
    1、以root管理员身份查看数据编码格式。
    登陆命令:>mysql -u root –p 输入密码后如下命令查看数据编码格式:
    show variables like 'character%';
    查询结果如下:
    +--------------------------+----------------------------+ 
    | Variable_name | Value | 
    +--------------------------+----------------------------+ 
    | character_set_client | latin1 | 
    | character_set_connection | latin1 | 
    | character_set_database | latin1 | 
    | character_set_filesystem | binary | 
    | character_set_results | latin1 | 
    | character_set_server | latin1 | 
    | character_set_system | utf8 | 
    | character_sets_dir | /usr/share/mysql/charsets/ | 
    +--------------------------+----------------------------+
    通过查询结果显示可以看出 数据库编码为拉丁语,需要修改为gbk或utf8.
    character_set_client为客户端编码方式;
    character_set_connection为建立连接使用的编码;
    character_set_database数据库的编码;
    character_set_results结果集的编码;
    character_set_server数据库服务器的编码;
    只要保证以上五个采用的编码方式一样,就不会出现乱码问题。
    2、修改数据库编码的步骤:
    1)停止mysql服务。
    2)修改mysql配置文件。
    windows:安装路径下的:my.ini
    linux:路径一般为:/etc/mysql/my.cnf
    3)找到客户端配置[client] 在下面添加
    default-character-set=utf8 默认字符集为utf8 
    4)在找到[mysqld] 添加 
    default-character-set=utf8 默认字符集为utf8 
    init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)
    5)修改好后,重新启动mysql查看当前数据编码格式。
    >show variables like 'character%'; 
    +--------------------------+----------------------------+ 
    | 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/ | 
    +--------------------------+----------------------------+
    3、MySQL指定编码的方式是非常灵活并多样化的,可以指定表级别的编码,行级别编码,甚至可以指定字段级别的编码。
    以下示例给出创建数据库时指定编码的两种方式:
    1)CREATE  DATABASE  ms_db  CHARACTER SET  utf8  COLLATE utf8_general_ci;
    2)create  database  if  not  exists  netctoss  default character set utf8;
    3)如果你采用的是外部接入的方式,可以在连接中确定请求的编码格式如:jdbc:mysql://localhost:3306 /mysql?useUnicode=true&characterEncoding=utf-8(注意:不要出现任何空格,否则出错)
    4、若Commandline终端查看数据显示乱码则执行如下命令:
    set names gbk(注意,不是UTF-8) 来修改窗口级别的编码格式解决终端乱码问题。
    注意:set names gbk只可以修改character_set_client、character_set_connection、 character_set_results的编码方式,并且这种修改是窗口级别的,只针对当前窗口有效,打开新窗口修改无效,数据库底层的编码方式不会被改变,插入数据后还是以utf8编码方式存储。
     
     
    2  针对自己的问题解决方案如下:
      首先我在自己的安装目录,没找到my.ini文件,有一个my—default.ini文件,其中没找到前面提到的内容。
      因此解决方法:
        net start mysql  启动mysql服务
        mysql -u root -p 密码  登录mysql
        show variables like "char%"  查看当前mysql的默认配置
        set character_set_server='utf8'  修改默认配置,但是这种修改是临时生效,在修改后的窗口里创建库和表会按照修改后的格式配置
        .                .代表与上一条命令类似的命令,依次修改默认的编码格式
        .
        .
        .
        status    修改后查看修改的效果
        创建库和表这时就会按照修改的格式进行创建
       然后调整java的工程编码为utf—8,然后在jdbc:mysql://localhost:3306 /mysql?useUnicode=true&characterEncoding=utf-8(注意:不要出现任何 空格,否则出错)
      
  • 相关阅读:
    Python基础语法 第2节课(数据类型转换、运算符、字符串)
    python基础语法 第5节课 ( if 、 for )
    python基础语法 第4节课 (字典 元组 集合)
    Python基础语法 第3节课 (列表)
    A. Peter and Snow Blower 解析(思維、幾何)
    C. Dima and Salad 解析(思維、DP)
    D. Serval and Rooted Tree (樹狀DP)
    C2. Balanced Removals (Harder) (幾何、思維)
    B. Two Fairs 解析(思維、DFS、組合)
    D. Bash and a Tough Math Puzzle 解析(線段樹、數論)
  • 原文地址:https://www.cnblogs.com/dongzhuangdian/p/5137866.html
Copyright © 2011-2022 走看看