• 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储存
     
  • 相关阅读:
    每周总结⑤
    每周总结④——所遇问题
    Leetcode566. 重塑矩阵
    移动应用开发三种方式
    html5离线存储manifest
    拓端tecdat|python中的copula:Frank、Clayton和Gumbel copula模型估计与可视化
    拓端tecdat|R语言用极大似然和梯度下降算法估计GARCH(p)过程
    拓端tecdat|R语言Keras用RNN、双向RNNs递归神经网络、LSTM分析预测温度时间序列、 IMDB电影评分情感
    JAVA中CountDownLatch的简单示例
    网络编程基础篇
  • 原文地址:https://www.cnblogs.com/henw/p/3874050.html
Copyright © 2020-2023  润新知