zoukankan      html  css  js  c++  java
  • Mysql编码, Mysql编码流程, Mysql编码顺序, Mysql编码原理, Mysql编码修改依据

    编码查看方式以及解释说明:
    需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:>mysql -u root –p,之后两次输入root用户的密码),查看数据库的编码方式命令为:
     >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/ |
    +--------------------------+----------------------------+
     
    从以上信息可知数据库的编码为latin1,需要修改为gbk或者是utf8;
    其中,
    character_set_client: 为客户端编码方式;客户端发送的查询中使用的字符集
    character_set_connection: 为建立连接使用的编码;
    character_set_database: 数据库的编码;数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。
    character_set_results:结果集的编码;
    有待验证:只要保证以上几个采用的编码方式一样,就不会出现乱码问题。
    character_set_server: 数据库服务器的编码;服务器安装时指定的默认字符集设定。
    character_system: 数据库系统使用的字符集设定。
    另一个查看数据库编码的命令:
    >SHOW VARIABLES LIKE 'collation%';
     
    MYSQL关于字符编码方面的存储原理
    程序配置文件.连接串: CharSet=UTF8, 说明:
    查询语句使用此种编码格式发送到服务器上
    注意:查询结果仍然是以反回数据的格式传送。
    查询语句执行逻辑:
    1. 程序配置连接串: CharSet=UTF8, 将查询语句使用"CharSet=UTF8"此种格式的编码发送到服务器上
    2. Mysql将接收到的查询语句转成character_set_client指定的格式,
    3. 接着转成character_set_connection指定的格式
    4. 接着将character_set_connection转为内部操作字符
           - 使用每个数据字段的CHARACTER SET设定值;
           - 若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准);
           - 若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值;
           - 若上述值不存在,则使用character_set_server设定值。
    5. 将操作结果从内部操作字符集转换为character_set_results。
     
    执行语句执行逻辑
    1. 程序配置连接串: CharSet=UTF8, 将执行语句使用"CharSet=UTF8"此种格式的编码发送到服务器上
    2. Mysql将接收到的查询语句转成character_set_client指定的格式,
    3. 接着转成character_set_connection指定的格式
    4. 接着将character_set_connection转为内部操作字符
           - 使用每个数据字段的CHARACTER SET设定值;
           - 若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准);
           - 若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值;
           - 若上述值不存在,则使用character_set_server设定值。
    5. 将操作结果从内部操作字符集转换为character_set_database储存
     
  • 相关阅读:
    OAuth2.0 基础概述
    Ubuntu安装Gogs服务
    ASP.NET WebAPI 生成帮助文档与使用Swagger服务测试
    ASP.NET MVC 中的路由
    升级Ghost
    搭建Golang开发环境
    TDD并不是看上去的那么美
    .NET Framework 源码查看与调试
    在 ASP.NET MVC 中使用异步控制器
    SpringMVC+FreeMarker+Mybatis 整合
  • 原文地址:https://www.cnblogs.com/henw/p/3874050.html
Copyright © 2011-2022 走看看