连接数据库查看数据库编码相关变量
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编码看待都没有问题。
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 的默认编码是 Latin1,不支持中文,要支持中文需要把数据库的默认编码修改为 gbk 或者 utf8。下面我们将详细讲解 MySQL 编码与中文显示相关知识点。 MySQL 编码 MySQL 的编码方式是...
### 修改MySQL编码的方法 在日常使用MySQL数据库的过程中,可能会遇到中文乱码的问题,尤其是在不同的操作系统如Windows和Linux之间切换时更为常见。本文旨在探讨一种通用的解决方案,适用于各种环境下的MySQL中文...
mysql编码问题
linux下安装mysql,utf-8编码处理,以及远程连接
### MySQL中文编码设置 在Java Web开发过程中,MySQL数据库中的中文编码问题是非常常见的技术难题之一。如果处理不当,可能会导致中文显示乱码、数据插入失败等问题。本文将深入探讨MySQL中文编码的相关设置,并...
MySQL中的编码选择对于数据库的正常运行至关重要,尤其是处理包含多种语言或者特殊字符(如表情符号)的数据时。这里我们将深入探讨UTF8和UTF8MB4两种编码格式,以及它们各自的排序规则`utf8mb4_unicode_ci`和`utf8...
Mysql字符集编码详解 Mysql数据库中的字符集编码问题是许多开发者经常遇到的一个问题,特别是在JAVA项目中。解决这个问题需要从多方面入手,包括服务器、数据库、数据表和连接等四个层次。这篇文章将详细介绍如何...
下面是升级Mysql编码为UTF8MB4的步骤和注意事项: 为什么需要升级编码 在早期的Mysql版本中,默认的编码是latin1,而这个编码无法正确地存储emoji表情符号。为了解决这个问题,需要将Mysql的编码升级到UTF8MB4,...
在Ubuntu操作系统中配置MySQL数据库的编码格式,主要是为了确保数据的正确存储和读取,特别是对于包含非ASCII字符(如中文、日文等)的数据。本文将详细解释如何进行这一配置过程。 首先,你需要确定MySQL的配置...
MySQL 中修改编码配置文件全面配置,适合初学者,一看就会!!
全国省市区编码mysql全国省市区编码mysql全国省市区编码mysql全国省市区编码mysql
5. **处理中文编码**:在连接MySQL时,务必设置正确的字符集,如`charset='utf8mb4'`。`utf8mb4`是UTF-8的一个变种,能支持所有Unicode字符,包括中文。在MySQL中创建表和字段时也要确保使用该字符集。 以上就是...
- MySQL编码规范和风格指南 - MySQL服务器代码的基本结构 - 使用CMake构建MySQL服务器的详细步骤和选项 - MySQL插件的构建方法 - MySQL内部使用的数据结构和内存管理技术 - 如何通过阅读源代码来理解MySQL的工作原理...
最后,我们需要添加 `init_connect='SET NAMES utf8'` 行,以设置连接 MySQL 数据库时使用 UTF8 编码。 重启 MySQL 修改好 `my.cnf` 文件后,我们需要重新启动 MySQL,以使修改生效。 查看修改结果 重新启动 ...
在本文中,我们将深入探讨一个常见的编程问题,即“MySQL编码问题导致含中文字段无法进行删除操作”。在数据库管理中,编码问题是一个普遍且棘手的挑战,特别是当涉及到多语言字符集时。这个问题通常源于数据库系统...
MySQL是一种广泛使用的开源关系型数据库管理系统,其支持多种字符编码,包括GBK、UTF-8等。在处理中文数据时,不正确的字符编码设置可能导致中文乱码问题。解决这个问题通常涉及对MySQL服务器、数据库、表以及连接的...
mysql 编码设置命令,需要的朋友可以参考下。
### MySQL的编码集修改方式详解 #### 背景与目的 MySQL作为一款广泛使用的开源关系型数据库管理系统,在处理各种语言的数据时,字符集的选择至关重要。特别是在全球化的大背景下,支持多语言成为数据库应用的基本...
### MySQL编码问题解析与解决方案 #### 一、问题背景及现象 在进行MySQL数据库的迁移过程中,遇到一种常见的编码问题:将原有的MySQL数据库备份并恢复到另一台机器上后,在新开发的应用程序(如本例中的Django应用...
在处理MySQL数据库插入中文数据时,经常遇到编码问题导致乱码。这主要是由于不同环节的编码不一致所造成的。以下是两种解决方法,适用于普通Web项目和Struts框架的项目。 ### 方法一:普通Web项目 #### 1. 页面...