- 浏览: 5172770 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
silence19841230:
先拿走看看
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
masuweng 写道发下源码下载地址吧!三个相关文件打了个包 ...
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
发下源码下载地址吧!
SpringBoot2.0开发WebSocket应用完整示例 -
masuweng:
SpringBoot2.0开发WebSocket应用完整示例 -
wallimn:
水淼火 写道你好,我使用以后,图标不显示,应该怎么引用呢,谢谢 ...
前端框架iviewui使用示例之菜单+多Tab页布局
转自:https://www.cnblogs.com/digdeep/p/5228199.html
1. character_set_system
The character set used by the server for storing identifiers. The value is always utf8.
character_set_system 是系统元数据(字段名等)存储时使用的编码字符集,该字段和具体存储的数据无关。总是固定不变的——utf8. 我们可以不去管它。
2. character_set_server
Use charset_name as the default server character set. See Section 10.5, “Character Set Configuration”. If you use this option to specify a nondefault character set, you should also use --collation-server to specify the collation.
该变量设置的 server 级别的(mysqld级别的) 字符集。也就是说设置的是 一个 mysqld 的,所有字符最后存储时,使用的编码字符集。
默认值为 lantin1. 我们一般设置成:utf8、utf8mb4、gbk 等值。
一同设置的还有 server 级别的排序规则:
collation_server:
utf8mb4_bin, utf8mb4_general_ci, utf8_bin, utf8_general_ci
ci 代表: casesensitive ignore 排序时不考虑大小写;而 _bin 结尾的排序时考虑大小写。
3. character_set_database
Every database has a database character set and a database collation. The CREATE DATABASE and ALTER DATABASE statements have optional clauses for specifying the database character set and collation:
CREATE DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
ALTER DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
character_set_database 是单个数据库级别的 字符集设置,该参数允许我们在同一个 mysqd 下面的不同的 database 使用不同的字符集。
比如:
create database db1 character set utf8mb4 collate utf8mb4_bin;
这就设置了 数据库 级别的字符集。如果 create database 语句没有 character 和 collate 参数,那么他们会默认使用:
character_set_server 和 character_collation 的值作为 默认值。
同样对应有数据库级别的排序规则参数:
collation_database
4. character_set_client
The character set for statements that arrive from the client. The session value of this variable is set using the character set requested by the client when the client connects to the server. (Many clients support a --default-character-set option to enable this character set to be specified explicitly. See also Section 10.1.4, “Connection Character Sets and Collations”.)
也就是 mysql client 发送 给 mysqld 的语句使用的 编码字符集。
可以使用 --default-character-set 参数来显示设置。
5. character_set_connection
The character set used for literals that do not have a character set introducer and for number-to-string conversion.
数字到字符转换时的编码字符集。
(用introducer指定文本字符串的字符集:
– 格式为:[_charset] 'string' [COLLATE collation]
– 例如:
• SELECT _latin1 'string';
• SELECT _utf8 '你好' COLLATE utf8_general_ci;
– 由introducer修饰的文本字符串在请求过程中不经过多余的转码,直接转换为内部字符集处理。 )
实际中我们一般没有人去使用 introducer ,所以其实是没有 introducer,所以都会使用 character_set_connection来编码的。
6. character_set_results
The character set used for returning query results such as result sets or error messages to the client.
mysqld 在返回 查询 结果集 或者错误信息到 client 时,使用的编码字符集。
7. set names 'xxx' 命令
可以看到改变的是 character_set_client、character_set_connection、character_set_results
它们都是和 client 相关的。而 真正server端的编码字符集,character_set_server 和 character_set_database ,set names 'xxx' 根本无法修改。
set names 'xxx' 命令可以使 character_set_client、character_set_connection、character_set_results 三者统一:
client (character_set_client) -----> character_set_connection -------> mysqld ------> client(character_set_results)
减少编码转换的需要。
8. character_set_server 和 character_set_database
二者 的作用其实是相同的,都是设置 字符最终存储到磁盘时,使用的编码字符集。只不过 二者设置的级别不一样而已。character_set_server 设置了 mysqld 级别的存储编码字符集,而character_set_database设置 mysqld 中单个 database 的存储编码字符集。而且character_set_database的默认值就是 character_set_server 的值。
存在三次编码转换过程:
1)mysql client 使用 character_set_client编码的字符------> character_set_connection 编码字符
------> mysqld :这里需要从 character_set_connection 编码格式二进制流解码成 字符,然后使用 character_set_server/character_set_database 对字符进行再次编码,生成二进制流,存储时,就是存储再次编码的二进制流数据。
2)读取数据时,会使用 character_set_server/character_set_database 对读取到的二级制流进行 解码成 字符,然后使用 character_set_results 对字符进行二次编码,生成二进制流,发给 mysql client.
所以 使用 set names 'xxx' 命令,结合 character_set_server 参数,可以将 整个过程的 字符集设置成相同的,就不会存在编码转换的过程。
9. default-character-set = charset_name 配置参数
Use charset_name as the default character set for the client and connection(其实还有 character_set_results).
A common issue that can occur when the operating system uses utf8 or another multibyte character set is that output from the mysql client is formatted incorrectly, due to the fact that the MySQL client uses the latin1 character set by default. You can usually fix such issues by using this option to force the client to use the system character set instead.
See Section 10.5, “Character Set Configuration”, for more information.
default-character-set 能够同时指定 client 端 和 connection 的字符,也就是:character_set_client 和 character_set_connection的值,实际上还设置了 character-set-results 的值。
所以 default-character-set 的作用和 set names 'xxx' 的作用是一样的。
1. character_set_system
The character set used by the server for storing identifiers. The value is always utf8.
character_set_system 是系统元数据(字段名等)存储时使用的编码字符集,该字段和具体存储的数据无关。总是固定不变的——utf8. 我们可以不去管它。
2. character_set_server
Use charset_name as the default server character set. See Section 10.5, “Character Set Configuration”. If you use this option to specify a nondefault character set, you should also use --collation-server to specify the collation.
该变量设置的 server 级别的(mysqld级别的) 字符集。也就是说设置的是 一个 mysqld 的,所有字符最后存储时,使用的编码字符集。
默认值为 lantin1. 我们一般设置成:utf8、utf8mb4、gbk 等值。
一同设置的还有 server 级别的排序规则:
collation_server:
utf8mb4_bin, utf8mb4_general_ci, utf8_bin, utf8_general_ci
ci 代表: casesensitive ignore 排序时不考虑大小写;而 _bin 结尾的排序时考虑大小写。
3. character_set_database
Every database has a database character set and a database collation. The CREATE DATABASE and ALTER DATABASE statements have optional clauses for specifying the database character set and collation:
CREATE DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
ALTER DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
character_set_database 是单个数据库级别的 字符集设置,该参数允许我们在同一个 mysqd 下面的不同的 database 使用不同的字符集。
比如:
create database db1 character set utf8mb4 collate utf8mb4_bin;
这就设置了 数据库 级别的字符集。如果 create database 语句没有 character 和 collate 参数,那么他们会默认使用:
character_set_server 和 character_collation 的值作为 默认值。
同样对应有数据库级别的排序规则参数:
collation_database
4. character_set_client
The character set for statements that arrive from the client. The session value of this variable is set using the character set requested by the client when the client connects to the server. (Many clients support a --default-character-set option to enable this character set to be specified explicitly. See also Section 10.1.4, “Connection Character Sets and Collations”.)
也就是 mysql client 发送 给 mysqld 的语句使用的 编码字符集。
可以使用 --default-character-set 参数来显示设置。
5. character_set_connection
The character set used for literals that do not have a character set introducer and for number-to-string conversion.
数字到字符转换时的编码字符集。
(用introducer指定文本字符串的字符集:
– 格式为:[_charset] 'string' [COLLATE collation]
– 例如:
• SELECT _latin1 'string';
• SELECT _utf8 '你好' COLLATE utf8_general_ci;
– 由introducer修饰的文本字符串在请求过程中不经过多余的转码,直接转换为内部字符集处理。 )
实际中我们一般没有人去使用 introducer ,所以其实是没有 introducer,所以都会使用 character_set_connection来编码的。
6. character_set_results
The character set used for returning query results such as result sets or error messages to the client.
mysqld 在返回 查询 结果集 或者错误信息到 client 时,使用的编码字符集。
7. set names 'xxx' 命令
可以看到改变的是 character_set_client、character_set_connection、character_set_results
它们都是和 client 相关的。而 真正server端的编码字符集,character_set_server 和 character_set_database ,set names 'xxx' 根本无法修改。
set names 'xxx' 命令可以使 character_set_client、character_set_connection、character_set_results 三者统一:
client (character_set_client) -----> character_set_connection -------> mysqld ------> client(character_set_results)
减少编码转换的需要。
8. character_set_server 和 character_set_database
二者 的作用其实是相同的,都是设置 字符最终存储到磁盘时,使用的编码字符集。只不过 二者设置的级别不一样而已。character_set_server 设置了 mysqld 级别的存储编码字符集,而character_set_database设置 mysqld 中单个 database 的存储编码字符集。而且character_set_database的默认值就是 character_set_server 的值。
存在三次编码转换过程:
1)mysql client 使用 character_set_client编码的字符------> character_set_connection 编码字符
------> mysqld :这里需要从 character_set_connection 编码格式二进制流解码成 字符,然后使用 character_set_server/character_set_database 对字符进行再次编码,生成二进制流,存储时,就是存储再次编码的二进制流数据。
2)读取数据时,会使用 character_set_server/character_set_database 对读取到的二级制流进行 解码成 字符,然后使用 character_set_results 对字符进行二次编码,生成二进制流,发给 mysql client.
所以 使用 set names 'xxx' 命令,结合 character_set_server 参数,可以将 整个过程的 字符集设置成相同的,就不会存在编码转换的过程。
9. default-character-set = charset_name 配置参数
Use charset_name as the default character set for the client and connection(其实还有 character_set_results).
A common issue that can occur when the operating system uses utf8 or another multibyte character set is that output from the mysql client is formatted incorrectly, due to the fact that the MySQL client uses the latin1 character set by default. You can usually fix such issues by using this option to force the client to use the system character set instead.
See Section 10.5, “Character Set Configuration”, for more information.
default-character-set 能够同时指定 client 端 和 connection 的字符,也就是:character_set_client 和 character_set_connection的值,实际上还设置了 character-set-results 的值。
所以 default-character-set 的作用和 set names 'xxx' 的作用是一样的。
发表评论
-
Oracle连接故障的排除
2024-09-09 22:33 625Oracle版本为11G,操作系统为Windows Ser ... -
Oracle数据库相关系统突然提示“SQLException:违反协议”
2024-02-19 15:50 5099SQLException:违反协议这个异常可能由很多的 ... -
CentOS在Docker中安装Oracle
2024-02-06 12:13 12641.拉取Oracle镜像,并检 ... -
Windows Server安装oracle数据库一直停在82%
2023-02-04 12:01 618网上有个说法:服务器超过一定数量的CPU后,将不能正常安装 ... -
ORA-04030错误处理
2023-02-04 11:52 2697【错误描述】 错误信息如下: ORA-04030:在尝 ... -
ORA-04030错误处理
2023-02-04 11:45 403【错误描述】 错误信息如下: ORA-04030:在尝 ... -
Linux安装MySQL数据库
2019-06-10 22:27 18201.进入安装包所在目录,解压: tar zxvf mysql- ... -
确定MySQL在Linux系统中配置文件的位置
2019-04-14 19:30 27851.通过which mysql命令来查看mysql的安装位置。 ... -
MYSQL中取当前周/月/季/年的第一天与最后一天
2018-11-17 23:16 2220转自:https://blog.csdn.net/ ... -
Oracle删除大量数据的实践
2016-11-07 18:03 5839一、引言 从来没有 ... -
Oracle 数据库简明教程 V0.1
2016-03-23 21:01 2071供初学者入门学习使用,以开发者常见、常用的知识为主,基本上 ... -
Oracle拆分字符串函数
2016-03-23 10:58 3371create or replace type string ... -
Oracle数据库远程连接无响应
2016-03-21 10:20 4327故障现象: 服务器本机使用sqlplus / as s ... -
Oracle PGA详解
2015-10-21 15:34 11491转自:http://yanguz123.iteye.com/b ... -
Oracle12C导入dmp数据
2015-10-08 23:43 20557Oracle12C,发生了较大的变化。以前熟悉的东西变得陌 ... -
SQLLDR数据导入小结
2015-07-25 22:06 75441.创建数据表 CREATE TABLE ... -
Window7安装Oracle10
2015-03-06 12:14 1626每次安装都要百度,转到自己的博客上,找起来方便,还能增加访 ... -
Oracle SQL Developer 连接 Mysql 数据库
2015-02-25 19:36 3688下载JDBC包,解压缩这里只要mysql-connector- ... -
Mysql数据备份与恢复
2015-02-25 19:15 1367备份/恢复策略 1. 要定期做 mysql备份,并考虑系统可以 ... -
Oracle中merge into的使用
2015-01-23 22:57 4050引自:http://www.cnblogs.com/highr ...
相关推荐
本教程将介绍如何解决Unity3D中与MySQL数据库连接时的字符编码问题,确保数据能够正确地以UTF-8格式存储和读取。 首先,我们遇到的问题是即使设置表的默认字符集为UTF8,并且在发送查询时使用UTF-8编码,仍然会出现...
### MySQL字符集与乱码问题解析 在MySQL数据库管理中,字符集的配置与使用是十分重要的环节之一,尤其在处理多语言环境的数据时更是如此。如果字符集配置不当,很容易导致数据插入、查询过程中出现乱码问题。本文将...
Mysql字符集编码详解 Mysql数据库中的字符集编码问题是许多开发者经常遇到的一个问题,特别是在JAVA项目中。解决这个问题需要从多方面入手,包括服务器、数据库、数据表和连接等四个层次。这篇文章将详细介绍如何...
乱码问题通常涉及到字符编码设置不一致,导致数据在存储或显示时出现问题。本文将深入探讨如何解决这个问题。 首先,我们要理解MySQL中涉及的几个关键字符集概念: 1. `character_set_client`:客户端发送SQL语句时...
如果您的 MySQL 数据库的字符编码不是 UTF8,可能会导致数据乱码、无法读取等问题。今天,我们将教您如何将 MySQL 字符编码修改为 UTF8。 为什么需要使用 UTF8 字符编码 UTF8 字符编码是一种通用的字符编码标准,...
### 一、理解MySQL字符集 在深入探讨修改字符集的方法之前,我们首先需要了解MySQL中的字符集概念。字符集是指一系列字符及其编码方式的集合。在MySQL中,常用的字符集有`latin1`、`utf8`等。其中: - **`latin1`*...
在处理数据库操作时,经常遇到的一个问题是字符集编码不一致导致的数据乱码问题。对于 MySQL 数据库来说,合理设置字符集可以有效避免此类问题的发生。本文将详细介绍如何通过设定 MySQL 的字符集来解决终端乱码的...
`mysql_set_character_set` 的关键在于,它不仅执行了`SET NAMES` SQL命令(对于MySQL 4.1及以上版本),还处理了字符集目录(`charset_dir`),以确保能找到相应的字符集定义。对于旧版本的MySQL服务器,如果版本低于...
在IT领域,尤其是在数据库管理与应用中,字符集的设置...通过上述方法,可以有效避免和解决由字符集配置不当导致的乱码问题,确保MySQL中的数据能够被正确地存储、检索和展示,从而提高数据库系统的稳定性和用户体验。
### 精通MySQL字符集与校对集 在MySQL中,正确地管理和配置字符集与校对集对于确保数据的正确性和一致性至关重要。字符集主要用于定义如何存储和表示文本数据,而校对集则定义了如何比较这些文本数据。本篇文章将...
### MySQL乱码问题解决办法 ...通过以上方法,我们能够有效地解决MySQL在处理中文数据时出现的乱码问题,确保数据的一致性和准确性。此外,在实际应用过程中,还需要结合具体情况灵活调整字符集设置,以达到最佳效果。
docker mysql 字符集设置 使用 docker 启动 mysql 容器可能会出现中文乱码的情况,这里记录如何制作支持中文的 mysql 镜像 docker版本:18.06 mysql 版本:5.7 1. 创建 my.cnf 文件 [client] default-character-set=...
这会告诉MySQL客户端使用特定的字符编码。 5. **创建数据库时指定字符集** 创建数据库时,通过`CREATE DATABASE yourDB CHARACTER SET gbk;`来设定默认字符集。 6. **DOS命令行环境变量** 在DOS环境下,可以通过...
在使用 Pb 将数据导入到 MySQL 5.0 时,可以在 ODBC 连接选项中添加 set names 语句,以解决中文乱码问题。具体来说,可以在 connector options 中的 initial statement 中添加以下语句: set names gbk 这样,在...
**出现乱码的原因** 多数情况下是由于 MySQL 安装时没有正确配置默认的字符集编码格式。通常,MySQL 的默认字符集是 Latin1(ISO 8859-1),这是一种西文字符集,并不支持中文字符。当尝试存储中文数据时,由于字符...
在MySQL中,字符集(Character Set)是指一个字符集合以及如何将这些字符编码为数字值,而排序规则(Collation)则是一组用于比较字符的规则。解决MySQL中文乱码问题的关键在于正确设置和使用字符集与排序规则。 - ...
* 使用正确的命令和工具来导入和导出数据 * 使用phpmyadmin可以轻松地解决中文乱码问题 * 使用mysqldump时,需要注意中文乱码问题,可以使用iconv命令来转换字符集 * 设置正确的字符集可以解决中文乱码问题 在实际...
### MySQL写入中文乱码之...通过上述步骤,我们可以有效地识别和解决MySQL写入或读取中文时出现乱码的问题。关键在于确保客户端、服务器以及结果集等各个层面的字符集设置保持一致,并根据实际情况调整字符集的配置。