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储存

Mysql编码, Mysql编码流程, Mysql编码顺序, Mysql编码原理, Mysql编码修改依据

时间: 2024-12-29 11:41:00

Mysql编码, Mysql编码流程, Mysql编码顺序, Mysql编码原理, Mysql编码修改依据的相关文章

Mysql 5.7.12解压版的安装及配置系统编码

这篇博文是由于上篇EF+MySql博文引发的,上篇博文中在Seed方法中插入中文数据到Mysql数据库中乱码,后来网上找了N种方法也没解决.重装了MySql并在安装过程中配置了系统编码,此篇记录一下. 一.下载Mysql对应版本的Zip(我这里是mysql-5.7.12-winx64.zip)文件 a.解压后把文件复制到需要放的安装目录文件下.(ps:我的路径是D:\Program Files\MySql 5.7.12\bin)  b.复制bin目录下的my-default.ini文件改名为my

vc6.0运用mysql数据库中的编码所导致的乱码问题(接收和输出的编码必须要一致)

[编译中遇见的问题]       ①在用vc 6.0去调用MySQL中的数据时,出现中文乱码       ②不明白mysql中的码制 [开始解决问题]      ①打开mysql控制台        ②开始展示自己        ③打开vc 6.0(配置mysql环境在这里我就不哆嗦了) 走起.....在vc 6.0中复制下列代码,进行连接mysql和调用代码如下: #include <Windows.h>#include <stdio.h>#include <stdlib.

步步深入:MySQL架构总览-&gt;查询执行流程-&gt;SQL解析顺序

前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识. 一.MySQL架构总览: 架构最好看图,再配上必要的说明文字. 下图根据参考书籍中一图为原本,再在其上添加上了自己的理解. 从上图中我们可以看到,整个架构分为两层,上层是MySQLD的被称为的‘SQL Layer’,下层是各种各样对上提供接口的存储引擎,被称为‘Storage Engin

MySQL架构总览-&gt;查询执行流程-&gt;SQL解析顺序

前言: 一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一篇博文了. 本文将从MySQL总体架构--->查询执行流程--->语句执行顺序来探讨一下其中的知识. 一.MySQL架构总览: 架构最好看图,再配上必要的说明文字. 下图根据参考书籍中一图为原本,再在其上添加上了自己的理解. 从上图中我们可以看到,整个架构分为两层,上层是MySQLD的被称为的'SQL Layer',下层是各种各样对上提供接口的存储引擎,被称为'Storage Engin

mysql(一)--mysql架构和执行流程

1. 一条查询 SQL 语句是如何执行的? 我们的程序或者工具要操作数据库,第一步要做什么事情? 跟数据库建立连接. 1.1. 通信协议 首先,MySQL 必须要运行一个服务,监听默认的 3306 端口. 在我们开发系统跟第三方对接的时候,必须要弄清楚的有两件事. 第一个就是通信协议,比如我们是用 HTTP 还是 WebService 还是 TCP? 第二个是消息格式,比如我们用 XML 格式,还是 JSON 格式,还是定长格式?报文 头长度多少,包含什么内容,每个字段的详细含义. 比如我们之前

Mysql不乱码思维流程

>不乱码思维流程 (1)Linux #修改linux系统字符集 # vi /etc/sysconfig/i18n LANG="zh_CN.UTF-8" (2)Mysql #临时设置字符集(方法一) mysql> set names utf8; #临时设置字符集(方法二) # mysql -uroot -p --default-character-set=utf8 #永久设置字符集 # vi /etc/my.cnf [client]{client ,connection,re

MySQL 5.6.17 rpm 文件安装顺序

Linux系统安装MySQL时,将MySQL-5.6.17-1.el6.x86_64.rpm-bundle.tar包打开,有7个rpm文件,如下: MySQL-client-5.6.17-1.el6.x86_64.rpmMySQL-devel-5.6.17-1.el6.x86_64.rpmMySQL-embedded-5.6.17-1.el6.x86_64.rpmMySQL-server-5.6.17-1.el6.x86_64.rpmMySQL-shared-5.6.17-1.el6.x86_6

【IOS】苹果企业级证书IDP申请流程(附:邓白氏编码免费申请流程)

apem http://club.fir.im/topic/546db79ff6de25850440aea1 企业版IDP,即iOS Development Enterprise Program.注意是$299/Year那种,并不是$99/Year的那种. 这种方式的IDP其最大的好处在于:可以发布“In House”应用. 这种应用使用一种叫做“In House Distribution Provisioning Profile”的文件进行发布,不能发布到Apple Shop进行销售,也不需要

speex的基本编码和解码流程

最近在研究speex的编码和解码流程 之前在IM上用到的都是发语音片段,这个很简单,只需要找到googlecode上gauss的代码,然后套一下就可以用了. 不过googlecode要关闭,有人将他导入到了github,地址在这里 https://github.com/cczufish/OggSpeex-android 我也导入了,但是没成功,不知道什么问题,可能级别不够吧,哈哈 https://github.com/dongweiq/android-recorder 现在我们的需求是要求将语音