Mysql编码|学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 快速学习Mysql编码

开发者学堂课程【SQL进阶及查询练习:Mysql编码】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/36


Mysql编码

内容简介:

一 :查看mysql数据库编码

二: 编码解释

三: 控制台乱码问题

四: 指定默认编码

1.查看mysql数据库编码

*SHOW VARIABLES LIKE"char:

2.编码解释

*character set client :Mysql使用该编码来解读客户端发送过来的数据,例如该码为UTF8,那么如果客户端发送过来的数据不是utf8,那么就会出现乱码

*character set result:Mysql会把数据转换成该编码后,再发送给客户端,例如该编码为UTF8,那么如果客户端不使用UTF来解读,那么就会出现乱码。其它编码只要支持中文即可,也就是说不能使用latin1。

3.控制台乱码问题

*插入或修改时出现乱码:

>这是因为cmd默认模式下使用GBK,而character set client不是GBK的原因。我们只需让这两个编码相同即可。

*查询出的数据为乱码:

>这是因为character set results不是GBK,而cmd默认使用GBK的原因。我们只需让这两个编码相同即可。

>因为修改cmd的编码不方便,所以我们去设置character set result:为GBK即可。

*设置变量的语句:

>set character set clsent-gbk:

> set character set clsent-gbk:

注意,设置变量只对当前连接有效,当退出窗口后,再次登录mysql,还需再次设置变量。为了一劳永逸,可以在my.ini中设置:

设置default-chararcter-set=gbk即可。

4. 指定默认编码

我们在安装mysql 时已经指定了默认编码为utf8,所以我们在创建数据库、创建表时都无需再次制定编码。

为了一劳永逸,可以在my.ini中设置:

设置charaster-set-server=utf8即可。

Character set client | ->mysql把客户端传递的数据都当成是utf8!一是他传给utf8,二是如果我们传递的是x,那么需要修改这个变量为eastes et. Datas.

Character set connection | utf8

Character set results | utf8 -->mysql发送给客户的数据都是utf8的,一是客户用utf8编码,二是如果客户端使用gbk来码,那么需要修改这个变量为

Character set serever | utf8

Character set system | utf8

Character setclient = utf8,,无论客户发的是什么的编码的数据,mysql都当是utf8的数据。

>若客户端发送的是GBK

>服务器会当成是utf8对待

>总结:必然乱码。

处理问题的手段有两种:

>让客户端发送utf8的数据(行不通)

>把character_set_client修改为gbk

Set character_set_client =gbk;-->只有在当前窗口内有效,所以关闭窗口后再打开,又回到utf8了。

Character_set_result = utf8 ,把数据用什么编码发送给客户端。

>若服务器发送给客户端的是utf8的数据

>客户端会把他当成gbk,因为小黑屏,只能显示gbk.

>总结:必然乱码。

处理问题有两种手段:

>让服务器发送gbk的数据

>让小黑屏使用utf8来解读(行不通)

My.in1

在总配置文件中进行执行,可以一劳永逸

[client]

Port=3306

[mysql]

Default-character-set = gbk /* 它可以一劳永逸!它可以修改三个变量: client、

Result、connectio

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
|
2月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
134 6
|
2月前
|
SQL 关系型数据库 MySQL
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
69 3
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
|
2月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
75 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
1月前
|
SQL 关系型数据库 MySQL
|
2月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
69 1
|
6月前
|
SQL Oracle 关系型数据库
MySQL学习笔记
MySQL学习笔记
41 0
|
4月前
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
60 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
4月前
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
165 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
4月前
|
SQL 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
40 6