`

mysql编码

 
阅读更多

连接数据库查看数据库编码相关变量

mysql> show variables like 'chara%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

 其中 character_set_filesystem 表示系统元数据(字段名等)字符集,character_set_system 表示数据库所在操作系统字符集,character_sets_dir 表示mysql数据库用于存放字符集的目录。这几个不重要

 

character_set_server、character_set_database

character_set_server:数据库服务内部操作编码

character_set_database:当前选中数据库的编码

库、表、列编码

1.建库时,未指定编码,则采用character_set_server编码

2.建表时,未指定字符集,则采用当前库的字符集即character_set_database

3.新增或修改表字段时,未指定编码,则采用所属表的编码

修改编码

1.修改服务编码

set global character_set_server 'utf8';

2.修改数据库编码

① use database_name;

     set global character_set_database 'utf8';

②alter database database_name character set 'utf8';

3.修改表编码

alter table table_name character set 'utf8';

只影响后续列的默认定义,已有列不受影响,可以用下面语句修改已有列的编码和数据

alter table table_name convert to character set 'utf8';

4.修改列编码

alter table table_name modify col_name varchar(11) character set 'utf8';

这里要注意一点,修改某编码,它对下层级的新建对象默认编码有影响,对已经存在的下层级对象不影响。比如原来的某个库的编码是utf8,改成gbk编码,那么这个库以前的存在的表还是utf8,修改后新建表的默认编码是gbk。

默认编码

可以看到mysql5.7安装完,这两个值默认都是latin1(也就是 ISO-8859-1),因为ISO-8859-1编码范围使用了单字节内的所有空间,在支持ISO-8859-1的系统中传输和存储其他任何编码的字节流都不会被抛弃。换言之,把其他任何编码的字节流当作ISO-8859-1编码看待都没有问题。

ASCII字符集:基于罗马字母表的一套字符集,它采用1个字节的低7位表示字符,高位始终为0。
LATIN1字符集:相对于ASCII字符集做了扩展,仍然使用一个字节表示字符,但启用了高位,扩展了字符集的表示范围。
GBK字符集:支持中文,字符有一字节编码和两字节编码方式。
UTF8字符集:Unicode字符集的一种,是计算机科学领域里的一项业界标准,支持了所有国家的文字字符,utf8采用1-4个字节表示字符。

校对规则collation

使用 show character set; 可以查看数据库支持的所有编码,查询结果有一列叫 default collation 表示此种编码方式的默认校对规则。校对规则collation是用于某种编码方式对应字符集内部字符比较和排序的一套规则。

查看数据库当前编码使用的校对规则

mysql> show variables like 'collation%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+

可以看到当前数据库服务编码和数据库编码使用的校对规则都是latin1_swedish_ci。校对规则的命名方式是,对应的编码方式开头,中间一个语言名,最后以_ci(大小写不敏感)、_cs(大小写敏感)、_bin(二元)结束

举个例子

create table t1(name varchar(20)); //默认编码utf8,默认校对规则 utf8_generic_ci。表里两条记录a和A
mysql> select * from t1 where name='a';
+------+
| name |
+------+
| a    |
| A    |
+------+
修改表collate为 utf8_bin,再次查询
mysql> select * from t1 where name='a';
+------+
| name |
+------+
| a    |
+------+

 

character_set_client、character_set_connection、character_set_results

分享到:
评论

相关推荐

    MySQL编码与中文显示

    MySQL 编码与中文显示 MySQL 的默认编码是 Latin1,不支持中文,要支持中文需要把数据库的默认编码修改为 gbk 或者 utf8。下面我们将详细讲解 MySQL 编码与中文显示相关知识点。 MySQL 编码 MySQL 的编码方式是...

    修改mysql编码的一种方法

    ### 修改MySQL编码的方法 在日常使用MySQL数据库的过程中,可能会遇到中文乱码的问题,尤其是在不同的操作系统如Windows和Linux之间切换时更为常见。本文旨在探讨一种通用的解决方案,适用于各种环境下的MySQL中文...

    mysql编码问题

    mysql编码问题

    linux 安装mysql编码处理 远程连接

    linux下安装mysql,utf-8编码处理,以及远程连接

    MySQL中文编码设置

    ### MySQL中文编码设置 在Java Web开发过程中,MySQL数据库中的中文编码问题是非常常见的技术难题之一。如果处理不当,可能会导致中文显示乱码、数据插入失败等问题。本文将深入探讨MySQL中文编码的相关设置,并...

    MySQL 编码utf8 与 utf8mb4 utf8mb4_unicode_ci 与 utf8mb4_general_ci

    MySQL中的编码选择对于数据库的正常运行至关重要,尤其是处理包含多种语言或者特殊字符(如表情符号)的数据时。这里我们将深入探讨UTF8和UTF8MB4两种编码格式,以及它们各自的排序规则`utf8mb4_unicode_ci`和`utf8...

    Mysql字符集编码详解

    Mysql字符集编码详解 Mysql数据库中的字符集编码问题是许多开发者经常遇到的一个问题,特别是在JAVA项目中。解决这个问题需要从多方面入手,包括服务器、数据库、数据表和连接等四个层次。这篇文章将详细介绍如何...

    Mysql支持emoji 表情符号 升级编码为UTF8MB4

    下面是升级Mysql编码为UTF8MB4的步骤和注意事项: 为什么需要升级编码 在早期的Mysql版本中,默认的编码是latin1,而这个编码无法正确地存储emoji表情符号。为了解决这个问题,需要将Mysql的编码升级到UTF8MB4,...

    Ubuntu中配置Mysql编码方法.docx

    在Ubuntu操作系统中配置MySQL数据库的编码格式,主要是为了确保数据的正确存储和读取,特别是对于包含非ASCII字符(如中文、日文等)的数据。本文将详细解释如何进行这一配置过程。 首先,你需要确定MySQL的配置...

    MySQL 中修改编码配置文件全

    MySQL 中修改编码配置文件全面配置,适合初学者,一看就会!!

    全国省市区编码mysql

    全国省市区编码mysql全国省市区编码mysql全国省市区编码mysql全国省市区编码mysql

    Python 爬虫,实时存储到mysql,(注意调整mysql编码),并在前端展示。页面展示需要为html格式,cn.zip

    5. **处理中文编码**:在连接MySQL时,务必设置正确的字符集,如`charset='utf8mb4'`。`utf8mb4`是UTF-8的一个变种,能支持所有Unicode字符,包括中文。在MySQL中创建表和字段时也要确保使用该字符集。 以上就是...

    MySQL Internals Manual.pdf

    - MySQL编码规范和风格指南 - MySQL服务器代码的基本结构 - 使用CMake构建MySQL服务器的详细步骤和选项 - MySQL插件的构建方法 - MySQL内部使用的数据结构和内存管理技术 - 如何通过阅读源代码来理解MySQL的工作原理...

    Linux mysql utf8

    最后,我们需要添加 `init_connect='SET NAMES utf8'` 行,以设置连接 MySQL 数据库时使用 UTF8 编码。 重启 MySQL 修改好 `my.cnf` 文件后,我们需要重新启动 MySQL,以使修改生效。 查看修改结果 重新启动 ...

    MySQL编码问题导致含中文字段无法进行删除操作

    在本文中,我们将深入探讨一个常见的编程问题,即“MySQL编码问题导致含中文字段无法进行删除操作”。在数据库管理中,编码问题是一个普遍且棘手的挑战,特别是当涉及到多语言字符集时。这个问题通常源于数据库系统...

    更改mysql编码

    MySQL是一种广泛使用的开源关系型数据库管理系统,其支持多种字符编码,包括GBK、UTF-8等。在处理中文数据时,不正确的字符编码设置可能导致中文乱码问题。解决这个问题通常涉及对MySQL服务器、数据库、表以及连接的...

    mysql 编码设置命令

    mysql 编码设置命令,需要的朋友可以参考下。

    mysql的编码集修改方式

    ### MySQL的编码集修改方式详解 #### 背景与目的 MySQL作为一款广泛使用的开源关系型数据库管理系统,在处理各种语言的数据时,字符集的选择至关重要。特别是在全球化的大背景下,支持多语言成为数据库应用的基本...

    重新restore了mysql到另一台机器上后mysql 编码问题报错

    ### MySQL编码问题解析与解决方案 #### 一、问题背景及现象 在进行MySQL数据库的迁移过程中,遇到一种常见的编码问题:将原有的MySQL数据库备份并恢复到另一台机器上后,在新开发的应用程序(如本例中的Django应用...

    mysql插入数据库编码解决

    在处理MySQL数据库插入中文数据时,经常遇到编码问题导致乱码。这主要是由于不同环节的编码不一致所造成的。以下是两种解决方法,适用于普通Web项目和Struts框架的项目。 ### 方法一:普通Web项目 #### 1. 页面...

Global site tag (gtag.js) - Google Analytics