Mysql编码|学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 快速学习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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
8月前
|
开发工具 Docker 容器
MCR 微软 docker dotnet 镜像加速
docker-mcr 是一个 dotnet core global tool,作用是加速下载 mcr 提供的 dotnet 镜像。简单几步,便可以进行安装和使用。
744 82
|
缓存 NoSQL Java
Redis 缓存与数据库数据不一致问题
Redis 缓存与数据库数据不一致问题
281 3
|
8月前
|
运维 安全 弹性计算
基于阿里云的开源应用智能管理架构设计与工程实践
本文以Websoft9技术方案为例,探讨企业级应用管理的范式。通过解析开源应用管理面临的部署复杂性、运维低效性和知识碎片化三大挑战,提出基于阿里云的三层架构:智能应用管理门户、核心功能层和基础设施层。文章详细阐述了应用编排标准化(IaC实践)、智能运维体系构建及知识资产数字化的技术实现路径,并结合金融与制造行业的案例,展示解决方案的实际效果。最后提供开发者资源与工具链支持,助力企业高效管理应用。
281 1
|
数据可视化 JavaScript API
使用D3.js进行数据可视化的探索与实践
【6月更文挑战第2天】本文探讨了D3.js在数据可视化中的应用,介绍了D3.js作为JavaScript库的特性,包括数据驱动、灵活性和兼容性。实践中,涉及数据准备、创建SVG容器、数据绑定与绘制、交互与动画以及样式美化。D3.js使开发人员能高效创建动态、交互式图表,适用于多平台和设备。未来,随着数据可视化技术进步,D3.js的应用前景广阔。
|
前端开发 Java Maven
Maven 快照(SNAPSHOT)
Maven的SNAPSHOT功能解决了多团队协作时的版本同步问题。当data-service团队频繁更新(如每天一次)时,app-ui团队可以通过引用data-service:1.0-SNAPSHOT来获取最新版本,无需每次手动更新POM。Maven会自动下载最新快照并构建项目。在命令行中使用`mvn clean package -U`可强制更新快照。这样,当data-service有变更时,app-ui能自动集成最新代码,简化了协作流程。
|
安全 Linux 网络安全
使用D盾扫描Linux主机Webshell
使用D盾扫描Linux主机Webshell
788 0
使用D盾扫描Linux主机Webshell
|
12月前
|
数据安全/隐私保护 Kotlin
Kotlin - 类成员
Kotlin - 类成员
94 9
|
开发工具 git
Git分支及使用原则与流程
Git分支及使用原则与流程
457 0
|
监控
135 日志监控告警系统案例(数据模型设计)
135 日志监控告警系统案例(数据模型设计)
362 0
|
Linux 容器 Kubernetes
环境异常解决方案-CentOS 7 网络异常【Failed to start LSB: Bring up/down networking】
问题呈现 今天启动Kubernetes集群的时候发现部署的zookeeper集群有一个节点始终启动不成功,然后查看了一下日志发现报错信息是【getsockopt: no route to host】: error 根据以前的经验,这多半是...
9002 0