TiDB字符集和时区

TiDB 字符集和时区

mysql> select @@version;

+--------------------------------------+

| @@version |

+--------------------------------------+

| 5.7.10-TiDB-v2.1.0-beta-179-g5a0fd2d |

+--------------------------------------+

1 row in set (0.00 sec)

mysql> show variables like 'coll%';

+----------------------+-------------------+

| Variable_name | Value |

+----------------------+-------------------+

| collation_connection | utf8_general_ci |

| collation_server | latin1_swedish_ci |

| collation_database | latin1_swedish_ci |

+----------------------+-------------------+

3 rows in set (0.01 sec)

mysql> show variables like 'char%';

+--------------------------+--------------------------------------------------------+

| Variable_name | Value |

+--------------------------+--------------------------------------------------------+

| character_sets_dir | /usr/local/mysql-5.6.25-osx10.8-x86_64/share/charsets/ |

| character_set_connection | utf8 |

| character_set_client | utf8 |

| character_set_system | utf8 |

| character_set_results | utf8 |

| character_set_filesystem | binary |

| character_set_server | latin1 |

| character_set_database | latin1 |

+--------------------------+--------------------------------------------------------+

8 rows in set (0.01 sec)

登录进入默认的为utf8.

创建使用默认的字符集和排序规则的表:

mysql> create database wuhan;

Query OK, 0 rows affected (0.12 sec)

mysql> create table wuhan.city(id int not null auto_increment primary key,cityname varchar(20));

Query OK, 0 rows affected (0.14 sec)

mysql> show create table wuhan.city\G

*************************** 1. row ***************************

Table: city

Create Table: CREATE TABLE `city` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`cityname` varchar(20) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin

1 row in set (0.00 sec)

可以看到使用的默认字符集为utf8,排序规则为utf8_bin。

创建指定字符集和排序规则的表:

mysql> show create table wuhan.city2\G

*************************** 1. row ***************************

Table: city2

Create Table: CREATE TABLE `city2` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`cityname` varchar(20) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci

1 row in set (0.00 sec)

使用latin1字符集和排序规则的表。

mysql> create table wuhan.city3(id int not null auto_increment primary key,cityname varchar(20)) character set latin1 COLLATE latin1_general_ci;

Query OK, 0 rows affected (0.14 sec)

mysql> show create table wuhan.city3\G

*************************** 1. row ***************************

Table: city3

Create Table: CREATE TABLE `city3` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`cityname` varchar(20) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci

1 row in set (0.00 sec)

---查询当前数据库的字符集和排序规则:

mysql> SELECT @@character_set_database, @@collation_database;

+--------------------------+----------------------+

| @@character_set_database | @@collation_database |

+--------------------------+----------------------+

| latin1 | latin1_swedish_ci |

+--------------------------+----------------------+

1 row in set (0.01 sec)

mysql> use wuhan

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> SELECT @@character_set_database, @@collation_database;

+--------------------------+----------------------+

| @@character_set_database | @@collation_database |

+--------------------------+----------------------+

| utf8 | utf8_bin |

+--------------------------+----------------------+

1 row in set (0.00 sec)

--查询表的排序规则:

mysql> SELECT t.TABLE_SCHEMA,t.TABLE_NAME,t.TABLE_COLLATION

-> FROM information_schema.TABLES t WHERE t.TABLE_SCHEMA='wuhan';

+--------------+------------+-------------------+

| TABLE_SCHEMA | TABLE_NAME | TABLE_COLLATION |

+--------------+------------+-------------------+

| wuhan | city | utf8_bin |

| wuhan | city2 | utf8_general_ci |

| wuhan | city3 | latin1_general_ci |

+--------------+------------+-------------------+

第二部分 设置字符集和排序规则:

设置为utf8,排序规则则自动设置为utf8_bin.

set names 'utf8';

等同于:

SET character_set_client = utf8;

SET character_set_results = utf8;

SET character_set_connection = utf8;

需要另外设置:

set global collation_server=utf8_bin;

SET CHARACTER SET 'charset_name'

等同于:

SET character_set_client = charset_name;

SET character_set_results = charset_name;

SET collation_connection = @@collation_database;

mysql> show variables like 'char%';

+--------------------------+--------------------------------------------------------+

| Variable_name | Value |

+--------------------------+--------------------------------------------------------+

| character_set_connection | utf8 |

| character_set_client | utf8 |

| character_set_system | utf8 |

| character_set_database | utf8 |

| character_set_results | utf8 |

| character_sets_dir | /usr/local/mysql-5.6.25-osx10.8-x86_64/share/charsets/ |

| character_set_filesystem | binary |

| character_set_server | utf8 |

+--------------------------+--------------------------------------------------------+

8 rows in set (0.01 sec)

mysql> show variables like 'coll%';

+----------------------+----------+

| Variable_name | Value |

+----------------------+----------+

| collation_connection | utf8_bin |

| collation_database | utf8_bin |

| collation_server | utf8_bin |

+----------------------+----------+

3 rows in set (0.01 sec)

结论:

经过验证默认的字符集就是utf8,排序规则是utf8_bin.

在 TiDB 中实际上 utf8 被当做成了 utf8mb4 来处理。

当前tiBD支持的字符集和校验规则可以分别通过如下方式查询:

mysql> SHOW CHARACTER SET;

+---------+---------------+-------------------+--------+

| Charset | Description | Default collation | Maxlen |

+---------+---------------+-------------------+--------+

| utf8 | UTF-8 Unicode | utf8_bin | 3 |

| utf8mb4 | UTF-8 Unicode | utf8mb4_bin | 4 |

| ascii | US ASCII | ascii_bin | 1 |

| latin1 | Latin1 | latin1_bin | 1 |

| binary | binary | binary | 1 |

+---------+---------------+-------------------+--------+

5 rows in set (0.00 sec)

mysql> SHOW COLLATION;

目前支持排序规则219个。

但是上面的设置在tiDB重启后就使用了默认的字符集和和排序规则。

默认的字符集为utf8.TiDB目前不支持将字符集合排序规则写入到配置文件中。

时区支持:

TiDB 使用的时区由 time_zone 全局变量和 session 变量决定。 time_zone 的初始值是机器当前的系统时区为SYSTEM。

--查询时区:

mysql> SELECT @@global.time_zone, @@session.time_zone;

+--------------------+---------------------+

| @@global.time_zone | @@session.time_zone |

+--------------------+---------------------+

| SYSTEM | SYSTEM |

+--------------------+---------------------+

1 row in set (0.00 sec)

对于中国用户,按照默认使用即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谈 Delphi 中 JSON 的简便操作(非常简单)

我曾有讲过Delphi操作JSON的方法,特别是这一篇【delphi】类和记录的 helpers(助手)。但是因为当时是主要介绍的是Delphi的Helper,大家可能并没注意到Delphi中JSON的简便操作方法。 早期Delphi并没有自己的JSON操作库,大…

了解 JVM - 认识垃圾回收机制与类加载过程

前言 本篇通过介绍JVM是什么,认识JVM的内存区域的划分,了解类加载过程,JVM中垃圾回收机制,从中了解到垃圾回收机制中如何找到存活对象的方式,引用计数与可达性分析的方式,再释放垃圾对象时使用的方式&…

Kerberos协议详解

0x01 kerberos协议的角色组成 Kerberos协议中存在三个角色: 客户端(Client):发送请求的一方 服务端(Server):接收请求的一方 密钥分发中心(Key distribution KDC) 密钥分发中心分为两个部分: AS(Authentication Server)&…

HashMap和HashTable的区别是什么?

HashMap和HashTable都是常见的哈希表实现方式,它们有以下主要区别: 1. 线程安全性:HashTable是线程安全的,而HashMap不是。HashTable的方法都是同步的,可以在多线程环境中安全使用,但是会带来额外的性能开…

Nacos (2.0版本之后)状态异常集群节点状态异常

在nacos 2.0 之后正常部署后节点状态仅有一个正常,其余均为DOWN 或者SUSPICIOUS 状态 查看日志后发现 ERROR Server check fail, please check server 192.168.172.104 ,port 9849 is available , error {} 其实是nacos 相互之间不能正常通信造成的,nacos客户端升级为2.x版…

apple pencil一代的平替有哪些品牌?苹果平板的触控笔

随着苹果Pencil系列的推出,平替电容笔在国内市场得到了较好的发展,随之的销量,也开始暴涨,苹果pencil因为价格太高,导致很多人买不起。目前市场上,有不少的平替电容笔,可以替代苹果的Pencil&…

MySQL 主从复制与读写分离

MySQL 主从复制与读写分离 一、mysql读写分离的概念1、什么是读写分离?2、为什么要读写分离呢?3、什么时候要读写分离?4、主从复制与读写分离5、mysql支持的复制类型 二、主从复制的工作过程三、MySQL 读写分离原理常见的 MySQL 读写分离分为…

【Distributed】分布式ELK日志文件分析系统(二)

文章目录 一、FilebeatELK 部署1. 环境部署2. 在 Filebeat 节点上操作2.1 安装 Filebeat2.2 设置 filebeat 的主配置文件 3. 在 Apache 节点上操作3.1 在 Logstash 组件所在节点上新建一个 Logstash 配置文件 3. 启动3.1 在Logstash 组件所在节点启动3.2 在 Filebeat 节点 启动…

Stable Diffusion 用2D图片制作3D动态壁纸

如果想让我们的2D图片动起来可以使用stable-diffusion-webui-depthmap-script插件在SD中进行加工让图片动起来。 这是一个可以从单个图像创建深度图,现在也可以生成3D立体图像对的插件,无论是并排还是浮雕。生成的结果可在3D或全息设备(如VR耳机或Looking Glass显示器)上查…

C语言实现,固定内存通讯录(注释超详细)

头文件 #ifndef __LINKMAN_H__ #define __LINKMAN_H__#include<stdio.h> #include<string.h> #pragma warning (disable:4996) typedef struct LINKMAN//建立结构体&#xff0c;存放联系人信息 {char name[20];char sex[10];int age;int tel[12];char addr[50]; }…

大模型加速学科升级,飞桨赋能北邮“X+大模型”特色小学期

在人工智能时代&#xff0c;设计师与产品经理比以往更加需要关注一个事实&#xff1a;那就是如何利用人工智能和数据分析技术&#xff0c;打造让用户心动的信息交互产品和用户体验&#xff0c;释放人-机协同共创的巨大潜能&#xff0c;是决定设计产能和竞争力的关键。 在产业的…

【SpringBoot】84、SpringBoot中MVC处理异常的多种方式

在 SpringBoot 中我们可以使用注解 @ControllerAdvice 和 @RestControllerAdvice 来全局处理异常,这两个注解只多了一个注解 @ResponseBody,将方法的返回值,以特定的格式写入到 response 的 body ,进而将数据返回给客户端,如果是字符串直接输出字符串信息,如果是对象将会…

智能合约 -- 安全考量

相关概念 就是我们写代码是考虑这种涉及到合约安全的问题:下面这个方面写合约是重点考虑。 创建消息发送以太币&#xff1a; 1.要创建消息发送以太币&#xff0c;您需要构建一个有效的交易&#xff0c;并将其发送到以太坊网络中。 2.交易被发送到以太坊网络后&#xff0c;会经…

RabbitMQ ---- 消息队列

RabbitMQ ---- 消息队列 1. MQ 的相关概念1.1 什么是 MQ1.2 为什么要用 MQ1.3 MQ 的分类1.4 MQ 的选择 2. RabbitMQ2.1 RabbitMQ 的概念2.2 四大核心概念2.3 RabbitMQ 核心部分2.4 各个名词介绍2.5 安装 1. MQ 的相关概念 1.1 什么是 MQ MQ(message queue)&#xff0c;从字面…

爬虫之Scrapy

一 介绍 Scrapy一个开源和协作的框架&#xff0c;其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的&#xff0c;使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛&#xff0c;可用于如数据挖掘、监测和自动化测试等领域&#x…

什么是Docker

容器技术和虚拟机 虚拟机 和一个单纯的应用程序相比&#xff0c;操作系统是一个很重的程序&#xff0c;刚装好的系统还什么都没有部署&#xff0c;单纯的操作系统其磁盘占用至少几十G起步&#xff0c;内存要几个G起步。 在这台机器上开启三个虚拟机&#xff0c;每个虚拟机上…

CentOS 7 安装 Nginx

前言 最近&#xff0c;在公司经常会进行项目的部署&#xff0c;但是服务器环境都是导师已经搭建好了的&#xff0c;我就是将项目文件放到特定目录。于是&#xff0c;周末在家就进行了 Nginx 的安装学习。之前&#xff0c;在 Windows 上使用过 Nginx&#xff0c;但是在 Linux 环…

web学习--Cookie与Session会话技术

总结&#xff1a;可以考虑将登陆信息等重要信息存放为session&#xff0c;不重要的信息可以放在cookie中。 Cookie 1.概念&#xff1a;客户端会话技术&#xff0c;将数据保存在客户端 使用步骤&#xff1a; 1&#xff0c;创建Cookie对象&#xff0c;绑定数据 2.发送Cookie对象…

【微信小程序】使用 wx.request 方法进行异步网络请求

在微信小程序中&#xff0c;你可以使用 wx.request 方法进行异步网络请求&#xff0c;并将获取到的列表数据渲染到 UI 上。 首先&#xff0c;在页面的 data 中定义一个数组变量&#xff0c;用于存储获取到的列表数据&#xff0c;例如&#xff1a; Page({data: {listData: [] …

PSI算法经典论文算法概述

文章目录 什么是隐私求交PSIPSI协议分类PSI算法的分类基于哈希函数的PSI算法基于不经意传输&#xff08;OT&#xff09;的 PSI算法基于GC的PSI算法基于公钥加密的PSI算法基于DH的PSI算法基于RSA盲签名的PSI算法基于同态加密的PSI算法 基于差分隐私的PSI算法 总结参考文献 什么是…